chongqing_2018.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  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. //2020-11-06 暂时去掉主城区加载通用
  13. projectGljObject.addCommonInfoPriceID = function (condition) {
  14. if(condition.areaID != projectGljObject.commonInfoPriceID) condition.commonInfoPriceID = projectGljObject.commonInfoPriceID;
  15. }
  16. }
  17. if(typeof gljUtil !== 'undefined'){
  18. gljUtil.hasCompMachine = [301,304];//有组成物的机械
  19. gljUtil.machineComposition = [303,305,306,307,308,309,310,311];//可以做为机械组成物的类型
  20. }
  21. //允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、其他材料费、机械台班、机上人工、仪器仪表、燃料动力费、折旧费、
  22. // 检修费、维护费、安拆费及场外运费、校验费、其他费用、主材、设备、企业管理费、利润、一般风险费 前端工料机库编辑器下拉列表没有用到这个
  23. if(typeof allowGljType !== 'undefined'){
  24. 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];
  25. }
  26. if(typeof allowComponent !== 'undefined'){
  27. //允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班、仪器仪表、主材
  28. allowComponent = [202, 203, 204, 301, 304, 4];
  29. }
  30. if(typeof componentType !== 'undefined'){
  31. //可以作为组成物的工料机类型:普通材料、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用、主材
  32. componentType = [201, 303, 305, 306, 307, 308, 309, 310, 311, 4];
  33. }
  34. if(typeof machineAllowComponent !== 'undefined'){
  35. //允许含有组成物的机械工料机类型:机械台班、仪器仪表
  36. machineAllowComponent = [301, 304];
  37. }
  38. if(typeof machineComponent !== 'undefined'){
  39. //可以作为机械工料机组成物的工料机类型:机械组成物、机上人工、燃料动力费、折旧费、检修费、维护费、安拆费及场外运费、校验费、其他费用
  40. machineComponent = [303, 305, 306, 307, 308, 309, 310, 311];
  41. }
  42. if(typeof materialAllowComponent !== 'undefined'){
  43. //允许含有组成物的材料工料机类型:混凝土、砂浆、配合比
  44. materialAllowComponent = [202, 203, 204];
  45. }
  46. if(typeof materialComponent !== 'undefined'){
  47. //可以作为材料工料机组成物的工料机类型:普通材料
  48. materialComponent = [201];
  49. }
  50. // CSL, 2018-08-21 计算程序、基数 的覆盖。---------------------------------------------------------------------------------
  51. let isCQ2018 = true;
  52. if(typeof baseMaterialTypes !== 'undefined') baseMaterialTypes.push(gljType.OTHER_MATERIAL);
  53. if(typeof baseMachineMasterTypes !== 'undefined') baseMachineMasterTypes.push(gljType.INSTRUMENT);
  54. if(typeof baseMachineTypes !== 'undefined'){
  55. _.pull(baseMachineTypes,gljType.MACHINE_COMPOSITION);
  56. //baseMachineTypes.delete(gljType.MACHINE_COMPOSITION);
  57. baseMachineTypes.push(gljType.INSTRUMENT, gljType.FUEL_POWER_FEE, gljType.DEPRECIATION_FEE,
  58. gljType.INSPECTION_FEE, gljType.MAINTENANCE, gljType.DISMANTLING_FREIGHT_FEE,
  59. gljType.VERIFICATION_FEE, gljType.OTHER_FEE, gljType.OTHER_MACHINE_USED);
  60. }
  61. function overwriteRationCalcBases (taxType){
  62. if (rationCalcBases){
  63. for (let key in rationCalcBases) {
  64. delete rationCalcBases[key];
  65. };
  66. let isJY = taxType == '2';
  67. rationCalcBases['定额人工费'] = function (node, isTender) {
  68. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
  69. };
  70. rationCalcBases['定额材料费'] = function (node, isTender) {
  71. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender);
  72. };
  73. rationCalcBases['定额其他材料费'] = function (node, isTender) {
  74. return calcTools.rationBaseFee(node, [gljType.OTHER_MATERIAL], priceTypes.ptBasePrice, isTender);
  75. };
  76. rationCalcBases['定额施工机具使用费'] = function (node, isTender) {
  77. return calcTools.rationBaseFee(node, [gljType.GENERAL_MACHINE, gljType.INSTRUMENT, gljType.OTHER_MACHINE_USED], priceTypes.ptBasePrice, isTender);
  78. };
  79. rationCalcBases['定额主材费'] = function (node, isTender) {
  80. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptBasePrice, isTender);
  81. };
  82. rationCalcBases['定额设备费'] = function (node, isTender) {
  83. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptBasePrice, isTender);
  84. };
  85. rationCalcBases['市场价主材费'] = function (node, isTender) {
  86. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender);
  87. };
  88. rationCalcBases['市场价设备费'] = function (node, isTender) {
  89. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
  90. };
  91. rationCalcBases['人工费价差'] = function (node, isTender) {
  92. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptDiffPrice, isTender);
  93. };
  94. rationCalcBases['材料费价差'] = function (node, isTender) {
  95. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptDiffPrice, isTender);
  96. };
  97. rationCalcBases['机上人工费价差'] = function (node, isTender) {
  98. return calcTools.rationBaseFee(node, [gljType.MACHINE_LABOUR], priceTypes.ptDiffPrice, isTender);
  99. };
  100. rationCalcBases['燃料动力费价差'] = function (node, isTender) {
  101. return calcTools.rationBaseFee(node, [gljType.FUEL_POWER_FEE], priceTypes.ptDiffPrice, isTender);
  102. };
  103. rationCalcBases['人工工日'] = function (node, isTender) {
  104. return calcTools.labourDays(node, isTender);
  105. };
  106. rationCalcBases['暂估材料费'] = function (node, isTender) {
  107. return calcTools.estimateFee(node, true, isTender);
  108. };
  109. rationCalcBases['建筑面积'] = function (node, isTender) {
  110. return calcTools.getProjectFeatureProperty('buildingArea');
  111. };
  112. };
  113. };
  114. //code为标准接口所需,值是字典规定的
  115. (function overwriteFeeTypes() {
  116. if (typeof cpFeeTypes == 'undefined') return;
  117. cpFeeTypes = [
  118. {type: 'marketLabour', name: '人工费'},
  119. {type: 'rationLabour', name: '定额人工费'},
  120. {type: 'labourDiff', name: '人工费价差'},
  121. {type: 'marketMaterial', name: '材料费'},
  122. {type: 'rationMaterial', name: '定额材料费'},
  123. {type: 'materialDiff', name: '材料费价差'},
  124. {type: 'unratedMaterial', name: '未计价材料费'},
  125. {type: 'marketMainMaterial', name: '市场价主材费'},
  126. {type: 'marketEquipment', name: '市场价设备费'},
  127. {type: 'marketMachine', name: '施工机具使用费'},
  128. {type: 'rationMachine', name: '定额施工机具使用费'},
  129. {type: 'machineLabourDiff', name: '机上人工费价差'},
  130. {type: 'fuelDiff', name: '燃料动力费价差'},
  131. {type: 'organizeMeasures', name: '施工组织措施费'},
  132. {type: 'manage', name: '企业管理费'},
  133. {type: 'profit', name: '利润'},
  134. {type: 'forceFee', name: '规费'},
  135. {type: 'tax', name: '税金'},
  136. {type: 'common', name: '建筑安装工程费'}
  137. ];
  138. })();
  139. //清单计算基数相关
  140. if(typeof baseFigureMap !== 'undefined'){
  141. baseFigureMap = {
  142. //与清单直接关联=======
  143. '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  144. '分部分项定额人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  145. '分部分项定额材料费': {base: 'FBFXDEJJCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  146. '分部分项定额施工机具使用费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  147. '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  148. '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  149. '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
  150. '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  151. '组织措施项目定额人工费': {base: 'ZZCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  152. '组织措施项目定额材料费': {base: 'ZZCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  153. '组织措施项目定额施工机具使用费': {base: 'ZZCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  154. '安全文明施工专项费': {base: 'AQWMSGZXF', fixedFlag: fixedFlag.SAFETY_CONSTRUCTION, class: 'CSXM'},
  155. '技术措施项目费': {base: 'JSCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  156. '技术措施项目定额人工费': {base: 'JSCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  157. '技术措施项目定额材料费': {base: 'JSCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  158. '技术措施项目定额施工机具使用费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  159. '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  160. '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  161. '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
  162. '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
  163. '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
  164. '增值税': {base: 'ZZS', class: 'SJ', fixedFlag: fixedFlag.ADDED_VALUE_TAX},
  165. //不于清单直接关联==========
  166. '建筑面积': {base: 'JZMJ', class: 'FBFX'},
  167. '人材机价差': {base: 'RCJJC', class: 'RCJ'},
  168. '人工价差': {base: 'RGJC', class: 'RCJ'},
  169. '材料价差': {base: 'CLJC', class: 'RCJ'},
  170. '施工机具使用费价差': {base: 'JXJC', class: 'RCJ'},
  171. '分部分项人材机价差': {base: 'FBFXRCJJC', class: 'RCJ'},
  172. '分部分项人工价差': {base: 'FBFXRGJC', class: 'RCJ'},
  173. '分部分项材料价差': {base: 'FBFXCLJC', class: 'RCJ'},
  174. '分部分项施工机具使用费价差': {base: 'FBFXJXJC', class: 'RCJ'},
  175. '技术措施项目人材机价差': {base: 'JSCSXMRCJJC', class: 'RCJ'},
  176. '技术措施项目人工价差': {base: 'JSCSXMRGJC', class: 'RCJ'},
  177. '技术措施项目材料价差': {base: 'JSCSXMCLJC', class: 'RCJ'},
  178. '技术措施项目施工机具使用费价差': {base: 'JSCSXMJXJC', class: 'RCJ'},
  179. '甲供定额人工费': {base: 'JGDEJJRGF', class: 'RCJ'},
  180. '甲供定额材料费': {base: 'JGDEJJCLF', class: 'RCJ'},
  181. '甲供定额施工机具使用费': {base: 'JGDEJJJXF', class: 'RCJ'},
  182. '甲供人工费': {base: 'JGRGF', class: 'RCJ'},
  183. '甲供材料费': {base: 'JGCLF', class: 'RCJ'},
  184. '甲供施工机具使用费': {base: 'JGJXF', class: 'RCJ'},
  185. '甲供主材费': {base: 'JGZCF', class: 'RCJ'},
  186. '甲定定额人工费': {base: 'JDDEJJRGF', class: 'RCJ'},
  187. '甲定定额材料费': {base: 'JDDEJJCLF', class: 'RCJ'},
  188. '甲定定额施工机具使用费': {base: 'JDDEJJJXF', class: 'RCJ'},
  189. '甲定人工费': {base: 'JDRGF', class: 'RCJ'},
  190. '甲定材料费': {base: 'JDCLF', class: 'RCJ'},
  191. '甲定施工机具使用费': {base: 'JDJXF', class: 'RCJ'},
  192. '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
  193. '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
  194. '分包费': {base: 'FBF', class: 'FBF'},
  195. '分包定额人工费': {base: 'FBDEJJRGF', class: 'FBF'},
  196. '分包定额材料费': {base: 'FBDEJJCLF', class: 'FBF'},
  197. '分包定额机械费': {base: 'FBDEJJJXF', class: 'FBF'},
  198. '分包主材费': {base: 'FBZCF', class: 'FBF'},
  199. '分包设备费': {base: 'FBSBF', class: 'FBF'},
  200. '分包人工工日': {base: 'FBRGGR', class: 'FBF'},
  201. '税前工程造价': {base: 'SQGCZJ', class: 'SQGCZJ',
  202. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], //循环计算相关固定行,由于计算排除了本身,不用判断措施项目
  203. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]},//相关固定行
  204. };
  205. }
  206. function dynamicLoadCalcBase() {
  207. // 兼容旧数据,旧单位工程可能不存在累进区间
  208. if (projectObj && projectObj.project.property.progressiveInterval) {
  209. baseFigureMap['市政道路工程安全文明施工费'] = {
  210. base: 'SZDLGCAQWMSGF', class: 'CSXM',
  211. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  212. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  213. };
  214. baseFigureMap['市政桥梁工程安全文明施工费'] = {
  215. base: 'SZQLGCAQWMSGF', class: 'CSXM',
  216. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  217. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  218. };
  219. baseFigureMap['市政隧道工程安全文明施工费'] = {
  220. base: 'SZSDGCAQWMSGF', class: 'CSXM',
  221. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  222. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  223. };
  224. baseFigureMap['城轨盾构工程安全文明施工费'] = {
  225. base: 'CGDGGCAQWMSGF', class: 'CSXM',
  226. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  227. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  228. };
  229. baseFigureMap['城轨高架桥工程安全文明施工费'] = {
  230. base: 'CGGJQGCAQWMSGF', class: 'CSXM',
  231. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  232. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  233. };
  234. baseFigureMap['城轨地下工程安全文明施工费'] = {
  235. base: 'CGDXGCAQWMSGF', class: 'CSXM',
  236. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  237. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  238. };
  239. baseFigureMap['城轨轨道工程安全文明施工费'] = {
  240. base: 'CGGDGCAQWMSGF', class: 'CSXM',
  241. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], // 以税前工程造价作为累进基数,因此配置沿用{税前工程造价}
  242. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]
  243. };
  244. }
  245. }
  246. if(typeof baseFigureTemplate !== 'undefined'){
  247. baseFigureTemplate['ZZS'] = function (tender) {//增值税
  248. let feeField = 'common',
  249. subFeeField = tender ? 'tenderTotalFee' : 'totalFee';
  250. return cbTools.getBillsFee(fixedFlag.ADDED_VALUE_TAX, feeField, subFeeField);
  251. };
  252. }
  253. if(typeof figureClassTemplate !== 'undefined'){
  254. figureClassTemplate['ADDED_VALUE_TAX'] = {flag: fixedFlag.ADDED_VALUE_TAX, filter: ['SJ', 'ZZS', 'SQGCZJ']}
  255. };
  256. if(typeof gljCol !== 'undefined'){
  257. gljCol.hideInfoPrice = false;
  258. };
  259. //这个文档浏览器库和服务器端共用,所以这个文件中用到的变量都要记得做undefined判断,不然后端读取时会有问题
  260. //=================================================== 前后端分割线 ======================================================================
  261. if(typeof module !== 'undefined'){
  262. module.exports = {
  263. getCusCoeContent: getCusCoeContent,
  264. getCustomerCoeData: getCustomerCoeData
  265. };
  266. }
  267. function getCusCoeContent() {
  268. return '人工×1,材料×1,施工机具×1,主材×1,设备×1';//2019-07-08 bug 添加自定义系数添加设备
  269. }
  270. function getCustomerCoeData() {
  271. return [
  272. {amount:1, operator:'*', gljCode:null, coeType:'定额'},
  273. { amount:1, operator:'*', gljCode:null, coeType:'人工'},
  274. { amount:1, operator:'*', gljCode:null, coeType:'材料'},
  275. { amount:1, operator:'*', gljCode:null, coeType:'施工机具'},
  276. { amount:1, operator:'*', gljCode:null, coeType:'主材'},
  277. { amount:1, operator:'*', gljCode:null, coeType:'设备'}
  278. ]
  279. }