chongqing_2018.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  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. }
  12. if(typeof gljUtil !== 'undefined'){
  13. gljUtil.hasCompMachine = [301,304];//有组成物的机械
  14. gljUtil.machineComposition = [303,305,306,307,308,309,310,311];//可以做为机械组成物的类型
  15. }
  16. //允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、其他材料费、机械台班、机上人工、仪器仪表、燃料动力费、折旧费、
  17. // 检修费、维护费、安拆费及场外运费、校验费、其他费用、主材、企业管理费、利润、一般风险费
  18. if(typeof allowGljType !== 'undefined'){
  19. allowGljType = [1, 201, 202, 203, 204, 205, 206, 207, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 4, 6, 7, 8];
  20. }
  21. if(typeof allowComponent !== 'undefined'){
  22. //允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班、仪器仪表、主材
  23. allowComponent = [202, 203, 204, 301, 304, 4];
  24. }
  25. if(typeof componentType !== 'undefined'){
  26. //可以作为组成物的工料机类型:普通材料、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用、主材
  27. componentType = [201, 303, 305, 306, 307, 308, 309, 310, 311, 4];
  28. }
  29. if(typeof machineAllowComponent !== 'undefined'){
  30. //允许含有组成物的机械工料机类型:机械台班、仪器仪表
  31. machineAllowComponent = [301, 304];
  32. }
  33. if(typeof machineComponent !== 'undefined'){
  34. //可以作为机械工料机组成物的工料机类型:机械组成物、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用
  35. machineComponent = [303, 305, 306, 307, 308, 309, 310, 311];
  36. }
  37. if(typeof materialAllowComponent !== 'undefined'){
  38. //允许含有组成物的材料工料机类型:混凝土、砂浆、配合比
  39. materialAllowComponent = [202, 203, 204];
  40. }
  41. if(typeof materialComponent !== 'undefined'){
  42. //可以作为材料工料机组成物的工料机类型:普通材料
  43. materialComponent = [201];
  44. }
  45. // CSL, 2018-08-21 计算程序、基数 的覆盖。---------------------------------------------------------------------------------
  46. // let isCQ2018 = true;
  47. /*if(typeof baseMaterialTypes !== 'undefined'){
  48. baseMaterialTypes.push(gljType.OTHER_MATERIAL);
  49. allMaterialTypes.delete(gljType.EQUIPMENT);
  50. baseMachineTypes.delete(gljType.MACHINE_COMPOSITION);
  51. baseMachineTypes.push(gljType.INSTRUMENT, gljType.FUEL_POWER_FEE, gljType.DEPRECIATION_FEE,
  52. gljType.INSPECTION_FEE, gljType.MAINTENANCE, gljType.DISMANTLING_FREIGHT_FEE,
  53. gljType.VERIFICATION_FEE, gljType.OTHER_FEE, gljType.OTHER_MACHINE_USED);
  54. baseMachineMasterTypes.push(gljType.INSTRUMENT);
  55. }*/
  56. /*function overwriteRationCalcBases (taxType){
  57. if (rationCalcBases){
  58. for (let key in rationCalcBases) {
  59. delete rationCalcBases[key];
  60. };
  61. let isJY = taxType == '2';
  62. rationCalcBases['定额人工费'] = function (node, isTender) {
  63. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
  64. };
  65. rationCalcBases['定额材料费'] = function (node, isTender) {
  66. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender);
  67. };
  68. rationCalcBases['定额其他材料费'] = function (node, isTender) {
  69. return calcTools.rationBaseFee(node, [gljType.OTHER_MATERIAL], priceTypes.ptBasePrice, isTender);
  70. };
  71. rationCalcBases['定额施工机具使用费'] = function (node, isTender) {
  72. return calcTools.rationBaseFee(node, [gljType.GENERAL_MACHINE, gljType.INSTRUMENT, gljType.OTHER_MACHINE_USED], priceTypes.ptBasePrice, isTender);
  73. };
  74. rationCalcBases['市场价主材费'] = function (node, isTender) {
  75. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender);
  76. };
  77. rationCalcBases['人工工日'] = function (node, isTender) {
  78. return calcTools.labourDays(node, isTender);
  79. };
  80. rationCalcBases['人工费价差'] = function (node, isTender) {
  81. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptDiffPrice, isTender);
  82. };
  83. rationCalcBases['材料费价差'] = function (node, isTender) {
  84. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptDiffPrice, isTender);
  85. };
  86. /!* if (isJY){
  87. rationCalcBases['计价材料价差'] = function (node, isTender) {
  88. let baseMaterialTypesWithoutOtherMaterial = [
  89. gljType.GENERAL_MATERIAL,
  90. gljType.CONCRETE,
  91. gljType.MORTAR,
  92. gljType.MIX_RATIO,
  93. gljType.COMMERCIAL_CONCRETE,
  94. gljType.COMMERCIAL_MORTAR
  95. ];
  96. return calcTools.rationBaseFee(node, baseMaterialTypesWithoutOtherMaterial, priceTypes.ptDiffPrice, isTender);
  97. };
  98. };*!/
  99. rationCalcBases['机上人工费价差'] = function (node, isTender) {
  100. return calcTools.rationBaseFee(node, [gljType.MACHINE_LABOUR], priceTypes.ptDiffPrice, isTender);
  101. };
  102. rationCalcBases['燃料动力费价差'] = function (node, isTender) {
  103. return calcTools.rationBaseFee(node, [gljType.FUEL_POWER_FEE], priceTypes.ptDiffPrice, isTender);
  104. };
  105. if (isJY) {
  106. rationCalcBases['定额其他施工机具使用费'] = function (node, isTender) {
  107. return calcTools.rationBaseFee(node, [gljType.OTHER_MACHINE_USED], priceTypes.ptBasePrice, isTender);
  108. };
  109. rationCalcBases['机械折旧费'] = function (node, isTender) {
  110. return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.DEPRECIATION_FEE, isTender);
  111. };
  112. rationCalcBases['特大机械检修费'] = function (node, isTender) {
  113. return calcTools.machineDetailFee(node, node.data.gljList, [1, 2], gljType.INSPECTION_FEE, isTender);
  114. };
  115. rationCalcBases['中小机械检修费'] = function (node, isTender) {
  116. return calcTools.machineDetailFee(node, node.data.gljList, [3, 4], gljType.INSPECTION_FEE, isTender);
  117. };
  118. rationCalcBases['特大机械维护费'] = function (node, isTender) {
  119. return calcTools.machineDetailFee(node, node.data.gljList, [1, 2], gljType.MAINTENANCE, isTender);
  120. };
  121. rationCalcBases['中小机械维护费'] = function (node, isTender) {
  122. return calcTools.machineDetailFee(node, node.data.gljList, [3, 4], gljType.MAINTENANCE, isTender);
  123. };
  124. rationCalcBases['安拆费及场外运输费'] = function (node, isTender) {
  125. return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.DISMANTLING_FREIGHT_FEE, isTender);
  126. };
  127. /!* rationCalcBases['燃料动力费'] = function (node, isTender) {
  128. return calcTools.machineDetailFee(node, node.data.gljList, [], gljType.FUEL_POWER_FEE, isTender);
  129. };*!/
  130. rationCalcBases['定额仪器仪表费'] = function (node, isTender) {
  131. return calcTools.rationBaseFee(node, [gljType.INSTRUMENT], priceTypes.ptBasePrice, isTender);
  132. };
  133. };
  134. rationCalcBases['建筑面积'] = function (node, isTender) {
  135. return calcTools.getProjectFeatureProperty('buildingArea');
  136. };
  137. rationCalcBases['甲供定额人工费'] = function (node, isTender) {
  138. return calcTools.partASupplyFee(node, '甲供定额人工费', isTender);
  139. };
  140. rationCalcBases['甲供定额材料费'] = function (node, isTender) {
  141. return calcTools.partASupplyFee(node, '甲供定额材料费', isTender);
  142. };
  143. rationCalcBases['甲供定额施工机具费'] = function (node, isTender) {
  144. return calcTools.partASupplyFee(node, '甲供定额施工机具费', isTender);
  145. };
  146. rationCalcBases['甲供主材费'] = function (node, isTender) {
  147. return calcTools.partASupplyFee(node, '甲供主材费', isTender);
  148. };
  149. rationCalcBases['甲定定额人工费'] = function (node, isTender) {
  150. return calcTools.partASupplyFee(node, '甲定定额人工费', isTender);
  151. };
  152. rationCalcBases['甲定定额材料费'] = function (node, isTender) {
  153. return calcTools.partASupplyFee(node, '甲定定额材料费', isTender);
  154. };
  155. rationCalcBases['甲定定额施工机具费'] = function (node, isTender) {
  156. return calcTools.partASupplyFee(node, '甲定定额施工机具费', isTender);
  157. };
  158. rationCalcBases['甲定主材费'] = function (node, isTender) {
  159. return calcTools.partASupplyFee(node, '甲定主材费', isTender);
  160. };
  161. rationCalcBases['暂估材料费'] = function (node, isTender) {
  162. return calcTools.estimateFee(node, true, isTender);
  163. };
  164. // rationCalcBases['分包定额施工机具费'] = function (node, isTender) {
  165. // if (node.data.isSubcontract)
  166. // return calcTools.rationBaseFee(node, [gljType.GENERAL_MACHINE, gljType.INSTRUMENT, gljType.OTHER_MACHINE_USED], priceTypes.ptBasePrice, isTender)
  167. // else
  168. // return 0;
  169. // };
  170. };
  171. };*/
  172. /*(function overwriteFeeTypes() {
  173. if (typeof cpFeeTypes == 'undefined') return;
  174. cpFeeTypes = [
  175. {type: 'marketLabour', name: '人工费'},
  176. {type: 'marketMaterial', name: '材料费'},
  177. {type: 'marketMachine', name: '施工机具使用费'},
  178. {type: 'marketEquipment', name: '设备费'},
  179. {type: 'marketDirect', name: '直接费'},
  180. {type: 'labour', name: '定额人工费'},
  181. {type: 'material', name: '定额材料费'},
  182. {type: 'machine', name: '定额施工机具使用费'},
  183. {type: 'equipment', name: '定额设备费'},
  184. {type: 'direct', name: '定额直接费'},
  185. {type: 'measure', name: '措施费'},
  186. {type: 'measure1', name: '措施费I'},
  187. {type: 'measure2', name: '措施费II'},
  188. {type: 'manage', name: '企业管理费'},
  189. {type: 'force', name: '规费'},
  190. {type: 'profit', name: '利润'},
  191. {type: 'tax', name: '税金'},
  192. {type: 'common', name: '建安费'}
  193. ];
  194. })();*/
  195. //清单计算基数相关
  196. if(typeof baseFigureMap !== 'undefined'){
  197. baseFigureMap = {
  198. //与清单直接关联=======
  199. '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  200. '分部分项定额人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  201. '分部分项定额材料费': {base: 'FBFXDEJJCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  202. '分部分项定额施工机具使用费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  203. '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  204. '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  205. '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
  206. '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  207. '组织措施项目定额人工费': {base: 'ZZCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  208. '组织措施项目定额材料费': {base: 'ZZCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  209. '组织措施项目定额施工机具使用费': {base: 'ZZCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  210. '安全文明施工专项费': {base: 'AQWMSGZXF', fixedFlag: fixedFlag.SAFETY_CONSTRUCTION, class: 'CSXM'},
  211. '技术措施项目费': {base: 'JSCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  212. '技术措施项目定额人工费': {base: 'JSCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  213. '技术措施项目定额材料费': {base: 'JSCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  214. '技术措施项目定额施工机具使用费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  215. '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  216. '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  217. '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
  218. '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
  219. '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
  220. '增值税': {base: 'ZZS', class: 'SJ', fixedFlag: fixedFlag.ADDED_VALUE_TAX},
  221. //不于清单直接关联==========
  222. '建筑面积': {base: 'JZMJ', class: 'FBFX'},
  223. '人材机价差': {base: 'RCJJC', class: 'RCJ'},
  224. '人工价差': {base: 'RGJC', class: 'RCJ'},
  225. '材料价差': {base: 'CLJC', class: 'RCJ'},
  226. '施工机具使用费价差': {base: 'JXJC', class: 'RCJ'},
  227. '分部分项人材机价差': {base: 'FBFXRCJJC', class: 'RCJ'},
  228. '分部分项人工价差': {base: 'FBFXRGJC', class: 'RCJ'},
  229. '分部分项材料价差': {base: 'FBFXCLJC', class: 'RCJ'},
  230. '分部分项施工机具使用费价差': {base: 'FBFXJXJC', class: 'RCJ'},
  231. '技术措施项目人材机价差': {base: 'JSCSXMRCJJC', class: 'RCJ'},
  232. '技术措施项目人工价差': {base: 'JSCSXMRGJC', class: 'RCJ'},
  233. '技术措施项目材料价差': {base: 'JSCSXMCLJC', class: 'RCJ'},
  234. '技术措施项目施工机具使用费价差': {base: 'JSCSXMJXJC', class: 'RCJ'},
  235. '甲供定额人工费': {base: 'JGDEJJRGF', class: 'RCJ'},
  236. '甲供定额材料费': {base: 'JGDEJJCLF', class: 'RCJ'},
  237. '甲供定额施工机具使用费': {base: 'JGDEJJJXF', class: 'RCJ'},
  238. '甲供人工费': {base: 'JGRGF', class: 'RCJ'},
  239. '甲供材料费': {base: 'JGCLF', class: 'RCJ'},
  240. '甲供施工机具使用费费': {base: 'JGJXF', class: 'RCJ'},
  241. '甲供主材费': {base: 'JGZCF', class: 'RCJ'},
  242. '甲定定额人工费': {base: 'JDDEJJRGF', class: 'RCJ'},
  243. '甲定定额材料费': {base: 'JDDEJJCLF', class: 'RCJ'},
  244. '甲定定额施工机具使用费': {base: 'JDDEJJJXF', class: 'RCJ'},
  245. '甲定人工费': {base: 'JDRGF', class: 'RCJ'},
  246. '甲定材料费': {base: 'JDCLF', class: 'RCJ'},
  247. '甲定施工机具使用费': {base: 'JDJXF', class: 'RCJ'},
  248. '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
  249. '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
  250. '税前工程造价': {base: 'SQGCZJ', class: 'SQGCZJ',
  251. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], //循环计算相关固定行,由于计算排除了本身,不用判断措施项目
  252. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]},//相关固定行
  253. };
  254. }
  255. if(typeof baseFigureTemplate !== 'undefined'){
  256. baseFigureTemplate['ZZS'] = function (tender) {//增值税
  257. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.ADDED_VALUE_TAX])){
  258. return 0;
  259. }
  260. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  261. let bill = calcBase.fixedBills[fixedFlag.ADDED_VALUE_TAX]['bill'];
  262. if(cbTools.isUnDef(bill)) return 0;
  263. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  264. return cbTools.isDef(bill.feesIndex.common) && cbTools.isDef(bill.feesIndex.common[totalFeeType]) ? bill.feesIndex.common[totalFeeType] : 0;
  265. };
  266. }
  267. if(typeof figureClassTemplate !== 'undefined'){
  268. figureClassTemplate['ADDED_VALUE_TAX'] = {flag: fixedFlag.ADDED_VALUE_TAX, filter: ['SJ', 'ZZS', 'SQGCZJ']}
  269. };
  270. //去除分类分包费
  271. if(typeof $ !== 'undefined' && $('#cbClassList')){
  272. $('#cbClassList').find('li:eq(5)').remove();
  273. }
  274. //测试地区============
  275. /*if(typeof regions !== 'undefined') {
  276. regions = [
  277. '兰州',
  278. '定西',
  279. '天水',
  280. '平凉',
  281. '庆阳',
  282. '武威',
  283. '金昌',
  284. '张掖',
  285. '酒泉',
  286. '甘矿',
  287. '嘉峪关',
  288. '临夏',
  289. '合作',
  290. '武都',
  291. '白银',
  292. ];
  293. }*/
  294. //==============
  295. //这个文档浏览器库和服务器端共用,所以这个文件中用到的变量都要记得做undefined判断,不然后端读取时会有问题
  296. //=================================================== 前后端分割线 ======================================================================
  297. if(typeof module !== 'undefined'){
  298. module.exports = {
  299. getCusCoeContent: getCusCoeContent,
  300. getCustomerCoeData: getCustomerCoeData
  301. };
  302. }
  303. function getCusCoeContent() {
  304. return '人工×1,材料×1,施工机具×1,主材×1,设备×1'//2019-07-08 bug 添加自定义系数添加设备
  305. }
  306. function getCustomerCoeData() {
  307. return [
  308. {amount:1, operator:'*', gljCode:null, coeType:'定额'},
  309. { amount:1, operator:'*', gljCode:null, coeType:'人工'},
  310. { amount:1, operator:'*', gljCode:null, coeType:'材料'},
  311. { amount:1, operator:'*', gljCode:null, coeType:'施工机具'},
  312. { amount:1, operator:'*', gljCode:null, coeType:'主材'},
  313. { amount:1, operator:'*', gljCode:null, coeType:'设备'}
  314. ]
  315. }