guangdong_2018.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Zhong
  6. * @date 2019/8/15
  7. * @version
  8. */
  9. let isGD2018 = true;
  10. function overwriteRationCalcBases (){
  11. if (typeof rationCalcBases == 'undefined') return;
  12. for (let key in rationCalcBases) delete rationCalcBases[key];
  13. rationCalcBases['人工费'] = function (node, isTender) {
  14. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender);
  15. };
  16. rationCalcBases['材料费'] = function (node, isTender) {
  17. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender);
  18. };
  19. rationCalcBases['施工机具费'] = function (node, isTender) {
  20. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender);
  21. };
  22. rationCalcBases['主材费'] = function (node, isTender) {
  23. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender);
  24. };
  25. rationCalcBases['设备费'] = function (node, isTender) {
  26. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
  27. };
  28. // 广东建筑管理费特殊计算:管理费=ROUND(∑(人工费+施工机具费)*定额的管理费费率*0.01,精度)。与定额同级的量价、人材机则按管理费费率为0计算。
  29. rationCalcBases['管理费'] = function (node, isTender) {
  30. let rst = 0;
  31. if (calcTools.isRationItem(node) && node.data.gljList && node.data.manageFeeRate) {
  32. rst = (rationCalcBases['人工费'](node, isTender) + rationCalcBases['施工机具费'](node, isTender)) * node.data.manageFeeRate * 0.01;
  33. rst = rst.toDecimal(decimalObj.ration.unitPrice);
  34. };
  35. return rst;
  36. };
  37. rationCalcBases['工日合计'] = function (node, isTender) {
  38. return calcTools.labourDays(node, isTender);
  39. };
  40. rationCalcBases['甲供人工费'] = function (node, isTender) {
  41. return calcTools.partASupplyFee(node, '甲供人工费', isTender, false);
  42. };
  43. rationCalcBases['甲供材料费'] = function (node, isTender) {
  44. return calcTools.partASupplyFee(node, '甲供材料费', isTender, false);
  45. };
  46. rationCalcBases['甲供施工机具费'] = function (node, isTender) {
  47. return calcTools.partASupplyFee(node, '甲供机械费', isTender, false);
  48. };
  49. rationCalcBases['甲供主材费'] = function (node, isTender) {
  50. return calcTools.partASupplyFee(node, '甲供主材费', isTender, false);
  51. };
  52. rationCalcBases['甲供设备费'] = function (node, isTender) {
  53. return calcTools.partASupplyFee(node, '甲供设备费', isTender, false);
  54. };
  55. rationCalcBases['甲定人工费'] = function (node, isTender) {
  56. return calcTools.partASupplyFee(node, '甲定人工费', isTender, false);
  57. };
  58. rationCalcBases['甲定材料费'] = function (node, isTender) {
  59. return calcTools.partASupplyFee(node, '甲定材料费', isTender, false);
  60. };
  61. rationCalcBases['甲定施工机具费'] = function (node, isTender) {
  62. return calcTools.partASupplyFee(node, '甲定机械费', isTender, false);
  63. };
  64. rationCalcBases['甲定主材费'] = function (node, isTender) {
  65. return calcTools.partASupplyFee(node, '甲定主材费', isTender, false);
  66. };
  67. rationCalcBases['甲定设备费'] = function (node, isTender) {
  68. return calcTools.partASupplyFee(node, '甲定设备费', isTender, false);
  69. };
  70. rationCalcBases['暂估材料费'] = function (node, isTender) {
  71. return calcTools.estimateFee(node, true, isTender);
  72. };
  73. };
  74. (function overwriteFeeTypes() {
  75. if (typeof cpFeeTypes == 'undefined') return;
  76. cpFeeTypes = [
  77. {type: 'labour', name: '人工费'},
  78. {type: 'material', name: '材料费'},
  79. {type: 'machine', name: '机械费'},
  80. {type: 'mainMaterial', name: '主材费'},
  81. {type: 'equipment', name: '设备费'},
  82. {type: 'direct', name: '直接费'},
  83. {type: 'measure', name: '措施项目费'},
  84. {type: 'manage', name: '管理费'},
  85. {type: 'profit', name: '利润'},
  86. {type: 'tax', name: '税金'},
  87. {type: 'common', name: '工程造价'}
  88. ];
  89. })();
  90. if (typeof module !== 'undefined') {
  91. } else {
  92. // 广东接口排版规则,添加内容默认项目特征
  93. $(function () {
  94. $('#add-content').val('3');
  95. });
  96. //清单计算基数相关
  97. if(typeof baseFigureMap !== 'undefined'){
  98. baseFigureMap = {
  99. '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  100. '分部分项人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  101. '分部分项材料费': {base: 'FBFXDEJJCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  102. '分部分项施工机具费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  103. '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  104. '分部分项设备费': {base: 'FBFXSBF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  105. '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  106. '建筑面积': {base: 'JZMJ', class: 'FBFX'},
  107. '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
  108. '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
  109. '甲供人工费': {base: 'JGDEJJRGF', class: 'RCJ'},
  110. '甲供材料费': {base: 'JGDEJJCLF', class: 'RCJ'},
  111. '甲供施工机具费': {base: 'JGDEJJJXF', class: 'RCJ'},
  112. '甲定人工费': {base: 'JDDEJJRGF', class: 'RCJ'},
  113. '甲定材料费': {base: 'JDDEJJCLF', class: 'RCJ'},
  114. '甲定施工机具费': {base: 'JDDEJJJXF', class: 'RCJ'},
  115. '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
  116. '甲定设备费': {base: 'JDSBF', class: 'RCJ'},
  117. '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
  118. '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'}
  119. };
  120. }
  121. }
  122. if(typeof gljCol !== 'undefined'){
  123. gljCol.showTaxRate = true;
  124. }
  125. // 人材机库追加的列头
  126. if (typeof repositoryGljObj !== 'undefined') {
  127. repositoryGljObj.setting.header = [
  128. {headerName:"税率",headerWidth:60,dataCode:"taxRate", dataType: "Number", hAlign: "center", vAlign: "center"},
  129. { headerName: "机型", headerWidth: 60, dataCode: "model", dataType: "Number", hAlign: "center", vAlign: "center" },
  130. { headerName: "是否新增", headerWidth: 60, dataCode: "isComplementary", hAlign: "center", vAlign: "center" }
  131. ]
  132. }
  133. // 定额人材机选择页面表头
  134. if (typeof gljOprObj !== 'undefined') {
  135. gljOprObj.gljLibSheetSetting.header = [
  136. {headerName: "选择", headerWidth: 40, dataCode: "select", hAlign: "center", vAlign: "center", cellType: "checkBox"},
  137. {headerName: "编码", headerWidth: 80, dataCode: "code", dataType: "String", formatter: "@", hAlign: "left", vAlign: "center"},
  138. {headerName: "名称", headerWidth: 160, dataCode: "name", dataType: "String", hAlign: "left", vAlign: "center"},
  139. {headerName: "规格型号", headerWidth: 160, dataCode: "specs", dataType: "String", hAlign: "left", vAlign: "center"},
  140. {headerName: "单位", headerWidth: 40, dataCode: "unit", dataType: "String", hAlign: "center", vAlign: "center"},
  141. {headerName: "单价", headerWidth: 55, dataCode: "basePrice", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"},
  142. {headerName: "税率", headerWidth: 40, dataCode: "taxRate", dataType: "Number", formatter: "0.00", hAlign: "right", vAlign: "center"},
  143. {headerName: "类型", headerWidth: 60, dataCode: "typeName", dataType: "String", hAlign: "center", vAlign: "center"},
  144. {headerName: "新增", headerWidth: 40, dataCode: "isComplementary", dataType: "String", hAlign: "center", vAlign: "center", cellType: "checkBox", readOnly: true}
  145. ]
  146. }
  147. // 导入导出接口
  148. // 需要用固定类别关联的费用字典,用固定类别来映射
  149. // 数据节选自标准pdf文件《《建设工程政府投资项目造价数据标准》信息公开版》,附录C-费用名称与费用代号
  150. // 若映射表中没有映射关系,则费用字典取名称首字母
  151. let FlagFeeCodeMap = {};
  152. let FormulaFeeCodeMap = {};
  153. if (typeof commonConstants !== 'undefined') {
  154. FlagFeeCodeMap = {
  155. // 分部分项工程
  156. [commonConstants.fixedFlag.SUB_ENGINERRING]: 'QDF',
  157. // 措施项目
  158. [commonConstants.fixedFlag.MEASURE]: 'CSF',
  159. // 其他项目
  160. [commonConstants.fixedFlag.OTHER]: 'QTF',
  161. // 措施项目的子项
  162. [commonConstants.fixedFlag.GREEN_MEASURE_FEE]: 'AQWMSGF', // 绿色施工安全防护措施费
  163. [commonConstants.fixedFlag.OTHER_MEASURE_FEE]: 'QTCSF', // 其他措施费
  164. // 其他项目的子项
  165. [commonConstants.fixedFlag.PROVISIONAL]: 'ZLF', // 暂列金额
  166. [commonConstants.fixedFlag.ESTIMATE]: 'ZGJ', // 暂估价
  167. [commonConstants.fixedFlag.MATERIAL_PROVISIONAL]: 'ZGC', // 材料(工程设备)暂估价
  168. [commonConstants.fixedFlag.ENGINEERING_ESITIMATE]: 'ZGGC', // 专业工程暂估价
  169. [commonConstants.fixedFlag.DAYWORK]: 'LXF', // 计日工
  170. [commonConstants.fixedFlag.TURN_KEY_CONTRACT]: 'ZCBFWF', // 总承包服务费
  171. [commonConstants.fixedFlag.BUDGET_INCLUDE_WORK_FEE]: 'YSBGF', // 预算包干费
  172. [commonConstants.fixedFlag.PROJECT_HIGH_QUALITY_FEE]: 'GCYZF', // 工程优质费
  173. [commonConstants.fixedFlag.BUDGET_ESTIMATE_DIFF]: 'GSFDC', // 概算幅度差
  174. [commonConstants.fixedFlag.CLAIM_VISA]: 'SPYXCQZ', // 索赔与现场签证
  175. [commonConstants.fixedFlag.CLAIM]: 'SPFY', // 索赔费用
  176. [commonConstants.fixedFlag.VISA]: 'XCQZFY', // 现场签证
  177. [commonConstants.fixedFlag.OTHER_FEE]: 'QTFY', // 其他费用
  178. // 税金
  179. [commonConstants.fixedFlag.TAX]: 'SJ',
  180. // 工程造价
  181. [commonConstants.fixedFlag.ENGINEERINGCOST]: 'ZZJ',
  182. };
  183. // 需要用计算基数关联的费用字典
  184. FormulaFeeCodeMap = {
  185. '{分部分项工程费}': 'QDF',
  186. '{分部分项人工费}': 'QRG',
  187. '{分部分项材料费}': 'QCL',
  188. '{分部分项施工机具费}': 'QJX',
  189. '{分部分项主材费}': 'QZCF',
  190. '{分部分项设备费}': 'QSBF',
  191. '{分部分项人工工日}': 'FBFXRGGR', // 标准没有,自增
  192. '{建筑面积}': 'JZMZ', // 自增
  193. '{措施项目费}': 'CSF',
  194. '{其他项目费}': 'QTF',
  195. '{甲供人工费}': 'JGRGF', // 自增
  196. '{甲供材料费}': 'JGC',
  197. '{甲供施工机具费}': 'JGSGJJF', // 自增
  198. '{甲定人工费}': 'JDRGF', // 自增
  199. '{甲定材料费}': 'JDCLF', // 自增
  200. '{甲定施工机具费}': 'JDSGJJF', // 自增
  201. '{甲定主材费}': 'JDZCF', // 自增
  202. '{甲定设备费}': 'JDSBF', // 自增
  203. '{暂估材料费(从子目汇总)}': 'ZGCLFCZMHZ', // 自增
  204. '{税金}': 'SJ',
  205. };
  206. }