chongqing_2018.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. /**
  2. * Created by zhang on 2018/8/14.
  3. */
  4. if(typeof projectGljObject !== 'undefined'){
  5. projectGljObject.displayTypeMap=[
  6. {ID:'LABOUR',text:'人工'},
  7. {ID:'GENERAL_MATERIAL',text:'材料'},
  8. {ID:'GENERAL_MACHINE',text:'施工机具'},//重庆2018定额中去掉了主材,机械的显示改为了施工机具
  9. {ID:'MAIN_MATERIAL',text:'主材'}
  10. ];
  11. $('#menu_index_info').show();
  12. }
  13. if(typeof gljUtil !== 'undefined'){
  14. gljUtil.hasCompMachine = [301,304];//有组成物的机械
  15. gljUtil.machineComposition = [303,305,306,307,308,309,310,311];//可以做为机械组成物的类型
  16. }
  17. //允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、其他材料费、机械台班、机上人工、仪器仪表、燃料动力费、折旧费、
  18. // 检修费、维护费、安拆费及场外运费、校验费、其他费用、主材、设备、企业管理费、利润、一般风险费 前端工料机库编辑器下拉列表没有用到这个
  19. if(typeof allowGljType !== 'undefined'){
  20. allowGljType = [1, 201, 202, 203, 204, 205, 206, 207, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 4,5,6, 7, 8];
  21. }
  22. if(typeof allowComponent !== 'undefined'){
  23. //允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班、仪器仪表、主材
  24. allowComponent = [202, 203, 204, 301, 304, 4];
  25. }
  26. if(typeof componentType !== 'undefined'){
  27. //可以作为组成物的工料机类型:普通材料、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用、主材
  28. componentType = [201, 303, 305, 306, 307, 308, 309, 310, 311, 4];
  29. }
  30. if(typeof machineAllowComponent !== 'undefined'){
  31. //允许含有组成物的机械工料机类型:机械台班、仪器仪表
  32. machineAllowComponent = [301, 304];
  33. }
  34. if(typeof machineComponent !== 'undefined'){
  35. //可以作为机械工料机组成物的工料机类型:机械组成物、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用
  36. machineComponent = [303, 305, 306, 307, 308, 309, 310, 311];
  37. }
  38. if(typeof materialAllowComponent !== 'undefined'){
  39. //允许含有组成物的材料工料机类型:混凝土、砂浆、配合比
  40. materialAllowComponent = [202, 203, 204];
  41. }
  42. if(typeof materialComponent !== 'undefined'){
  43. //可以作为材料工料机组成物的工料机类型:普通材料
  44. materialComponent = [201];
  45. }
  46. // CSL, 2018-08-21 计算程序、基数 的覆盖。---------------------------------------------------------------------------------
  47. let isCQ2018 = true;
  48. if(typeof baseMaterialTypes !== 'undefined') baseMaterialTypes.push(gljType.OTHER_MATERIAL);
  49. if(typeof baseMachineMasterTypes !== 'undefined') baseMachineMasterTypes.push(gljType.INSTRUMENT);
  50. if(typeof baseMachineTypes !== 'undefined'){
  51. _.pull(baseMachineTypes,gljType.MACHINE_COMPOSITION);
  52. //baseMachineTypes.delete(gljType.MACHINE_COMPOSITION);
  53. baseMachineTypes.push(gljType.INSTRUMENT, gljType.FUEL_POWER_FEE, gljType.DEPRECIATION_FEE,
  54. gljType.INSPECTION_FEE, gljType.MAINTENANCE, gljType.DISMANTLING_FREIGHT_FEE,
  55. gljType.VERIFICATION_FEE, gljType.OTHER_FEE, gljType.OTHER_MACHINE_USED);
  56. }
  57. function overwriteRationCalcBases (taxType){
  58. if (rationCalcBases){
  59. for (let key in rationCalcBases) {
  60. delete rationCalcBases[key];
  61. };
  62. let isJY = taxType == '2';
  63. rationCalcBases['定额人工费'] = function (node, isTender) {
  64. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
  65. };
  66. rationCalcBases['定额材料费'] = function (node, isTender) {
  67. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender);
  68. };
  69. rationCalcBases['定额其他材料费'] = function (node, isTender) {
  70. return calcTools.rationBaseFee(node, [gljType.OTHER_MATERIAL], priceTypes.ptBasePrice, isTender);
  71. };
  72. rationCalcBases['定额施工机具使用费'] = function (node, isTender) {
  73. return calcTools.rationBaseFee(node, [gljType.GENERAL_MACHINE, gljType.INSTRUMENT, gljType.OTHER_MACHINE_USED], priceTypes.ptBasePrice, isTender);
  74. };
  75. rationCalcBases['市场价主材费'] = function (node, isTender) {
  76. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender);
  77. };
  78. rationCalcBases['市场价设备费'] = function (node, isTender) {
  79. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
  80. };
  81. rationCalcBases['人工工日'] = function (node, isTender) {
  82. return calcTools.labourDays(node, isTender);
  83. };
  84. rationCalcBases['人工费价差'] = function (node, isTender) {
  85. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptDiffPrice, isTender);
  86. };
  87. rationCalcBases['材料费价差'] = function (node, isTender) {
  88. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptDiffPrice, isTender);
  89. };
  90. /* if (isJY){
  91. rationCalcBases['计价材料价差'] = function (node, isTender) {
  92. let baseMaterialTypesWithoutOtherMaterial = [
  93. gljType.GENERAL_MATERIAL,
  94. gljType.CONCRETE,
  95. gljType.MORTAR,
  96. gljType.MIX_RATIO,
  97. gljType.COMMERCIAL_CONCRETE,
  98. gljType.COMMERCIAL_MORTAR
  99. ];
  100. return calcTools.rationBaseFee(node, baseMaterialTypesWithoutOtherMaterial, priceTypes.ptDiffPrice, isTender);
  101. };
  102. };*/
  103. rationCalcBases['机上人工费价差'] = function (node, isTender) {
  104. return calcTools.rationBaseFee(node, [gljType.MACHINE_LABOUR], priceTypes.ptDiffPrice, isTender);
  105. };
  106. rationCalcBases['燃料动力费价差'] = function (node, isTender) {
  107. return calcTools.rationBaseFee(node, [gljType.FUEL_POWER_FEE], priceTypes.ptDiffPrice, isTender);
  108. };
  109. if (isJY) {
  110. rationCalcBases['定额其他施工机具使用费'] = function (node, isTender) {
  111. return calcTools.rationBaseFee(node, [gljType.OTHER_MACHINE_USED], priceTypes.ptBasePrice, isTender);
  112. };
  113. rationCalcBases['机械折旧费'] = function (node, isTender) {
  114. return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.DEPRECIATION_FEE, isTender);
  115. };
  116. rationCalcBases['特大机械检修费'] = function (node, isTender) {
  117. return calcTools.machineDetailFee(node, node.data.gljList, [1, 2], gljType.INSPECTION_FEE, isTender);
  118. };
  119. rationCalcBases['中小机械检修费'] = function (node, isTender) {
  120. return calcTools.machineDetailFee(node, node.data.gljList, [3, 4], gljType.INSPECTION_FEE, isTender);
  121. };
  122. rationCalcBases['特大机械维护费'] = function (node, isTender) {
  123. return calcTools.machineDetailFee(node, node.data.gljList, [1, 2], gljType.MAINTENANCE, isTender);
  124. };
  125. rationCalcBases['中小机械维护费'] = function (node, isTender) {
  126. return calcTools.machineDetailFee(node, node.data.gljList, [3, 4], gljType.MAINTENANCE, isTender);
  127. };
  128. rationCalcBases['安拆费及场外运输费'] = function (node, isTender) {
  129. return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.DISMANTLING_FREIGHT_FEE, isTender);
  130. };
  131. /* rationCalcBases['燃料动力费'] = function (node, isTender) {
  132. return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.FUEL_POWER_FEE, isTender);
  133. };*/
  134. rationCalcBases['定额仪器仪表费'] = function (node, isTender) {
  135. return calcTools.rationBaseFee(node, [gljType.INSTRUMENT], priceTypes.ptBasePrice, isTender);
  136. };
  137. };
  138. rationCalcBases['建筑面积'] = function (node, isTender) {
  139. return calcTools.getProjectFeatureProperty('buildingArea');
  140. };
  141. rationCalcBases['甲供定额人工费'] = function (node, isTender) {
  142. return calcTools.partASupplyFee(node, '甲供定额人工费', isTender);
  143. };
  144. rationCalcBases['甲供定额材料费'] = function (node, isTender) {
  145. return calcTools.partASupplyFee(node, '甲供定额材料费', isTender);
  146. };
  147. rationCalcBases['甲供定额施工机具费'] = function (node, isTender) {
  148. return calcTools.partASupplyFee(node, '甲供定额施工机具费', isTender);
  149. };
  150. rationCalcBases['甲供主材费'] = function (node, isTender) {
  151. return calcTools.partASupplyFee(node, '甲供主材费', isTender, false);
  152. };
  153. rationCalcBases['甲定定额人工费'] = function (node, isTender) {
  154. return calcTools.partASupplyFee(node, '甲定定额人工费', isTender);
  155. };
  156. rationCalcBases['甲定定额材料费'] = function (node, isTender) {
  157. return calcTools.partASupplyFee(node, '甲定定额材料费', isTender);
  158. };
  159. rationCalcBases['甲定定额施工机具费'] = function (node, isTender) {
  160. return calcTools.partASupplyFee(node, '甲定定额施工机具费', isTender);
  161. };
  162. rationCalcBases['甲定主材费'] = function (node, isTender) {
  163. return calcTools.partASupplyFee(node, '甲定主材费', isTender, false);
  164. };
  165. rationCalcBases['暂估材料费'] = function (node, isTender) {
  166. return calcTools.estimateFee(node, true, isTender);
  167. };
  168. rationCalcBases['分包定额人工费'] = function (node, isTender) {
  169. if (node.data.isSubcontract)
  170. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender)
  171. else
  172. return 0;
  173. };
  174. rationCalcBases['分包定额材料费'] = function (node, isTender) {
  175. if (node.data.isSubcontract)
  176. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender)
  177. else
  178. return 0;
  179. };
  180. rationCalcBases['分包定额机械费'] = function (node, isTender) {
  181. if (node.data.isSubcontract)
  182. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender)
  183. else
  184. return 0;
  185. };
  186. rationCalcBases['分包主材费'] = function (node, isTender) {
  187. if (node.data.isSubcontract)
  188. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender)
  189. else
  190. return 0;
  191. };
  192. rationCalcBases['分包设备费'] = function (node, isTender) {
  193. if (node.data.isSubcontract)
  194. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender)
  195. else
  196. return 0;
  197. };
  198. rationCalcBases['分包人工工日'] = function (node, isTender) {
  199. if (node.data.isSubcontract)
  200. return calcTools.labourDays(node, isTender)
  201. else
  202. return 0;
  203. };
  204. };
  205. };
  206. //code为标准接口所需,值是字典规定的
  207. (function overwriteFeeTypes() {
  208. if (typeof cpFeeTypes == 'undefined') return;
  209. cpFeeTypes = [
  210. {type: 'rationUnitPrice', name: '定额综合单价', code: '1800'},
  211. {type: 'labour', name: '人工费', code: '101'},
  212. {type: 'material', name: '材料费', code: '201'},
  213. {type: 'machine', name: '施工机具使用费', code: '301'},
  214. {type: 'mainMaterial', name: '主材费', code: '501'},
  215. {type: 'equipment', name: '设备费', code: '502'},
  216. {type: 'manage', name: '企业管理费', code: '600'},
  217. {type: 'profit', name: '利润', code: '700'},
  218. {type: 'risk', name: '一般风险费', code: '1000'},
  219. {type: 'labourDiff', name: '人工价差', code: '104'},
  220. {type: 'materialDiff', name: '材料价差', code: '203'},
  221. {type: 'machineDiff', name: '施工机具使用价差', code: '304'},
  222. {type: 'otherRisk', name: '其他风险费', code: '1800'},
  223. {type: 'unratedMaterial', name: '未计价材料费', code: '1800'},
  224. {type: 'organizeMeasures', name: '组织措施费', code: '1200'},
  225. {type: 'safeCivilization', name: '安全文明施工费', code: '1204'},
  226. {type: 'document', name: '建设工程竣工档案编制费', code: '10041'},
  227. {type: 'acceptance', name: '住宅工程质量分户验收费', code: '1206'},
  228. {type: 'forceFee', name: '规费', code: '800'},
  229. {type: 'tax', name: '税金', code: '900'},
  230. {type: 'VAT', name: '增值税', code: '1800'},
  231. {type: 'surtax', name: '附加税', code: '1800'},
  232. {type: 'environmentTax', name: '环境保护税', code: '1800'},
  233. {type: 'common', name: '工程造价', code: '1'}
  234. ];
  235. })();
  236. //清单计算基数相关
  237. if(typeof baseFigureMap !== 'undefined'){
  238. baseFigureMap = {
  239. //与清单直接关联=======
  240. '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  241. '分部分项定额人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  242. '分部分项定额材料费': {base: 'FBFXDEJJCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  243. '分部分项定额施工机具使用费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  244. '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  245. '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  246. '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
  247. '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  248. '组织措施项目定额人工费': {base: 'ZZCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  249. '组织措施项目定额材料费': {base: 'ZZCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  250. '组织措施项目定额施工机具使用费': {base: 'ZZCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  251. '安全文明施工专项费': {base: 'AQWMSGZXF', fixedFlag: fixedFlag.SAFETY_CONSTRUCTION, class: 'CSXM'},
  252. '技术措施项目费': {base: 'JSCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  253. '技术措施项目定额人工费': {base: 'JSCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  254. '技术措施项目定额材料费': {base: 'JSCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  255. '技术措施项目定额施工机具使用费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  256. '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  257. '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  258. '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
  259. '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
  260. '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
  261. '增值税': {base: 'ZZS', class: 'SJ', fixedFlag: fixedFlag.ADDED_VALUE_TAX},
  262. //不于清单直接关联==========
  263. '建筑面积': {base: 'JZMJ', class: 'FBFX'},
  264. '人材机价差': {base: 'RCJJC', class: 'RCJ'},
  265. '人工价差': {base: 'RGJC', class: 'RCJ'},
  266. '材料价差': {base: 'CLJC', class: 'RCJ'},
  267. '施工机具使用费价差': {base: 'JXJC', class: 'RCJ'},
  268. '分部分项人材机价差': {base: 'FBFXRCJJC', class: 'RCJ'},
  269. '分部分项人工价差': {base: 'FBFXRGJC', class: 'RCJ'},
  270. '分部分项材料价差': {base: 'FBFXCLJC', class: 'RCJ'},
  271. '分部分项施工机具使用费价差': {base: 'FBFXJXJC', class: 'RCJ'},
  272. '技术措施项目人材机价差': {base: 'JSCSXMRCJJC', class: 'RCJ'},
  273. '技术措施项目人工价差': {base: 'JSCSXMRGJC', class: 'RCJ'},
  274. '技术措施项目材料价差': {base: 'JSCSXMCLJC', class: 'RCJ'},
  275. '技术措施项目施工机具使用费价差': {base: 'JSCSXMJXJC', class: 'RCJ'},
  276. '甲供定额人工费': {base: 'JGDEJJRGF', class: 'RCJ'},
  277. '甲供定额材料费': {base: 'JGDEJJCLF', class: 'RCJ'},
  278. '甲供定额施工机具使用费': {base: 'JGDEJJJXF', class: 'RCJ'},
  279. '甲供人工费': {base: 'JGRGF', class: 'RCJ'},
  280. '甲供材料费': {base: 'JGCLF', class: 'RCJ'},
  281. '甲供施工机具使用费': {base: 'JGJXF', class: 'RCJ'},
  282. '甲供主材费': {base: 'JGZCF', class: 'RCJ'},
  283. '甲定定额人工费': {base: 'JDDEJJRGF', class: 'RCJ'},
  284. '甲定定额材料费': {base: 'JDDEJJCLF', class: 'RCJ'},
  285. '甲定定额施工机具使用费': {base: 'JDDEJJJXF', class: 'RCJ'},
  286. '甲定人工费': {base: 'JDRGF', class: 'RCJ'},
  287. '甲定材料费': {base: 'JDCLF', class: 'RCJ'},
  288. '甲定施工机具使用费': {base: 'JDJXF', class: 'RCJ'},
  289. '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
  290. '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
  291. '分包费': {base: 'FBF', class: 'FBF'},
  292. '分包定额人工费': {base: 'FBDEJJRGF', class: 'FBF'},
  293. '分包定额材料费': {base: 'FBDEJJCLF', class: 'FBF'},
  294. '分包定额机械费': {base: 'FBDEJJJXF', class: 'FBF'},
  295. '分包主材费': {base: 'FBZCF', class: 'FBF'},
  296. '分包设备费': {base: 'FBSBF', class: 'FBF'},
  297. '分包人工工日': {base: 'FBRGGR', class: 'FBF'},
  298. '税前工程造价': {base: 'SQGCZJ', class: 'SQGCZJ',
  299. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], //循环计算相关固定行,由于计算排除了本身,不用判断措施项目
  300. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]},//相关固定行
  301. };
  302. }
  303. if(typeof baseFigureTemplate !== 'undefined'){
  304. baseFigureTemplate['ZZS'] = function (tender) {//增值税
  305. let feeField = 'common',
  306. subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
  307. return cbTools.getBillsFee(fixedFlag.ADDED_VALUE_TAX, feeField, subFeeField);
  308. };
  309. }
  310. if(typeof figureClassTemplate !== 'undefined'){
  311. figureClassTemplate['ADDED_VALUE_TAX'] = {flag: fixedFlag.ADDED_VALUE_TAX, filter: ['SJ', 'ZZS', 'SQGCZJ']}
  312. };
  313. if(typeof gljCol !== 'undefined'){
  314. gljCol.hideInfoPrice = false;
  315. };
  316. //这个文档浏览器库和服务器端共用,所以这个文件中用到的变量都要记得做undefined判断,不然后端读取时会有问题
  317. //=================================================== 前后端分割线 ======================================================================
  318. if(typeof module !== 'undefined'){
  319. module.exports = {
  320. getCusCoeContent: getCusCoeContent,
  321. getCustomerCoeData: getCustomerCoeData
  322. };
  323. }
  324. function getCusCoeContent() {
  325. return '人工×1,材料×1,施工机具×1,主材×1,设备×1';//2019-07-08 bug 添加自定义系数添加设备
  326. }
  327. function getCustomerCoeData() {
  328. return [
  329. {amount:1, operator:'*', gljCode:null, coeType:'定额'},
  330. { amount:1, operator:'*', gljCode:null, coeType:'人工'},
  331. { amount:1, operator:'*', gljCode:null, coeType:'材料'},
  332. { amount:1, operator:'*', gljCode:null, coeType:'施工机具'},
  333. { amount:1, operator:'*', gljCode:null, coeType:'主材'},
  334. { amount:1, operator:'*', gljCode:null, coeType:'设备'}
  335. ]
  336. }