neimenggu_2017.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. 'use strict';
  2. // CSL, 2019-01-18
  3. //允许使用的工料机类型:人工、普通材料、混凝土、砂浆、配合比、商品混凝土、商品砂浆、其他材料费、机械台班、机械组成物、机上人工、主材、设备、企业管理费、利润
  4. if(typeof allowGljType !== 'undefined'){
  5. allowGljType = [1, 201, 202, 203, 204, 205, 206, 207, 301, 302, 303, 4, 5, 6, 7];
  6. }
  7. if(typeof allowComponent !== 'undefined'){
  8. //允许含有组成物的工料机类型:混凝土、砂浆、配合比、机械台班、主材
  9. allowComponent = [202, 203, 204, 301, 4];
  10. }
  11. if(typeof componentType !== 'undefined'){
  12. //可以作为组成物的工料机类型:普通材料、机械组成物、机上人工、主材
  13. componentType = [201, 302, 303, 4];
  14. }
  15. if(typeof machineAllowComponent !== 'undefined'){
  16. //允许含有组成物的机械工料机类型:机械台班
  17. machineAllowComponent = [301];
  18. }
  19. if(typeof machineComponent !== 'undefined'){
  20. //可以作为机械工料机组成物的工料机类型:机械组成物、机上人工
  21. machineComponent = [302, 303];
  22. }
  23. if(typeof materialAllowComponent !== 'undefined'){
  24. //允许含有组成物的材料工料机类型:混凝土、砂浆、配合比
  25. materialAllowComponent = [202, 203, 204];
  26. }
  27. if(typeof materialComponent !== 'undefined'){
  28. //可以作为材料工料机组成物的工料机类型:普通材料
  29. materialComponent = [201];
  30. }
  31. (function overwriteFeeTypes() {
  32. if (typeof cpFeeTypes == 'undefined') return;
  33. cpFeeTypes = [
  34. {type: 'marketLabour', name: '人工费'},
  35. {type: 'marketMaterial', name: '材料费'},
  36. {type: 'marketMachine', name: '施工机具使用费'},
  37. {type: 'labour', name: '定额人工费'},
  38. {type: 'labourInc', name: '定额人工费调增'},
  39. {type: 'material', name: '定额材料费'},
  40. {type: 'machine', name: '定额施工机具使用费'},
  41. {type: 'mainMaterial', name: '主材费'},
  42. {type: 'equipment', name: '设备费'},
  43. {type: 'manage', name: '管理费'},
  44. {type: 'profit', name: '利润'},
  45. {type: 'safeAndEnvironment', name: '安全文明施工与环境保护费'},
  46. {type: 'tempFacility', name: '临时设施费'},
  47. {type: 'rain', name: '雨季施工增加费'},
  48. {type: 'protect', name: '已完工程及设备保护费'},
  49. {type: 'retest', name: '工程定位复测费'},
  50. {type: 'secondHandling', name: '二次搬运费'},
  51. {type: 'specialArea', name: '特殊地区施工增加费'},
  52. {type: 'night', name: '夜间施工增加费'},
  53. // {type: 'safeMeasures', name: '安全文明施工费'},
  54. {type: 'basement', name: '白天在地下室施工增加费'},
  55. {type: 'winter', name: '冬季施工增加费'},
  56. {type: 'risk', name: '风险费'},
  57. {type: 'force', name: '规费'},
  58. {type: 'tax', name: '税金'},
  59. {type: 'common', name: '工程造价'}
  60. ];
  61. })();
  62. function overwriteRationCalcBases (taxType){
  63. if (typeof rationCalcBases == 'undefined') return;
  64. for (let key in rationCalcBases) delete rationCalcBases[key];
  65. rationCalcBases['人工费'] = function (node, isTender) {
  66. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender);
  67. };
  68. rationCalcBases['材料费'] = function (node, isTender) {
  69. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender);
  70. };
  71. rationCalcBases['施工机具使用费'] = function (node, isTender) {
  72. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, 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.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
  79. };
  80. rationCalcBases['定额人工费'] = function (node, isTender) {
  81. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
  82. };
  83. rationCalcBases['定额材料费'] = function (node, isTender) {
  84. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender);
  85. };
  86. rationCalcBases['定额施工机具使用费'] = function (node, isTender) {
  87. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender);
  88. };
  89. rationCalcBases['人工工日'] = function (node, isTender) {
  90. return calcTools.labourDays(node, isTender);
  91. };
  92. rationCalcBases['甲供人工费'] = function (node, isTender) {
  93. return calcTools.partASupplyFee(node, '甲供人工费', isTender, false);
  94. };
  95. rationCalcBases['甲供材料费'] = function (node, isTender) {
  96. return calcTools.partASupplyFee(node, '甲供材料费', isTender, false);
  97. };
  98. rationCalcBases['甲供施工机具使用费'] = function (node, isTender) {
  99. return calcTools.partASupplyFee(node, '甲供施工机具使用费', isTender, false);
  100. };
  101. rationCalcBases['甲供主材费'] = function (node, isTender) {
  102. return calcTools.partASupplyFee(node, '甲供主材费', isTender, false);
  103. };
  104. rationCalcBases['甲供设备费'] = function (node, isTender) {
  105. return calcTools.partASupplyFee(node, '甲供设备费', isTender, false);
  106. };
  107. rationCalcBases['甲定人工费'] = function (node, isTender) {
  108. return calcTools.partASupplyFee(node, '甲定人工费', isTender, false);
  109. };
  110. rationCalcBases['甲定材料费'] = function (node, isTender) {
  111. return calcTools.partASupplyFee(node, '甲定材料费', isTender, false);
  112. };
  113. rationCalcBases['甲定施工机具使用费'] = function (node, isTender) {
  114. return calcTools.partASupplyFee(node, '甲定施工机具使用费', isTender, false);
  115. };
  116. rationCalcBases['甲定主材费'] = function (node, isTender) {
  117. return calcTools.partASupplyFee(node, '甲定主材费', isTender, false);
  118. };
  119. rationCalcBases['甲定设备费'] = function (node, isTender) {
  120. return calcTools.partASupplyFee(node, '甲定设备费', isTender, false);
  121. };
  122. rationCalcBases['暂估材料费'] = function (node, isTender) {
  123. return calcTools.estimateFee(node, true, isTender);
  124. };
  125. rationCalcBases['分包人工费'] = function (node, isTender) {
  126. if (node.data.isSubcontract)
  127. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender)
  128. else
  129. return 0;
  130. };
  131. rationCalcBases['分包材料费'] = function (node, isTender) {
  132. if (node.data.isSubcontract)
  133. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender)
  134. else
  135. return 0;
  136. };
  137. rationCalcBases['分包施工机具使用费'] = function (node, isTender) {
  138. if (node.data.isSubcontract)
  139. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender)
  140. else
  141. return 0;
  142. };
  143. rationCalcBases['分包主材费'] = function (node, isTender) {
  144. if (node.data.isSubcontract)
  145. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender)
  146. else
  147. return 0;
  148. };
  149. rationCalcBases['分包设备费'] = function (node, isTender) {
  150. if (node.data.isSubcontract)
  151. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender)
  152. else
  153. return 0;
  154. };
  155. rationCalcBases['分包定额人工费'] = function (node, isTender) {
  156. if (node.data.isSubcontract)
  157. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender)
  158. else
  159. return 0;
  160. };
  161. rationCalcBases['分包定额材料费'] = function (node, isTender) {
  162. if (node.data.isSubcontract)
  163. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptBasePrice, isTender)
  164. else
  165. return 0;
  166. };
  167. rationCalcBases['分包定额施工机具使用费'] = function (node, isTender) {
  168. if (node.data.isSubcontract)
  169. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender)
  170. else
  171. return 0;
  172. };
  173. rationCalcBases['分包人工工日'] = function (node, isTender) {
  174. if (node.data.isSubcontract)
  175. return calcTools.labourDays(node, isTender)
  176. else
  177. return 0;
  178. };
  179. };
  180. //清单基数相关
  181. (() => {
  182. if(typeof baseFigureMap !== 'undefined'){
  183. baseFigureMap = {
  184. //与清单直接关联
  185. '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  186. '分部分项定额人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  187. '分部分项定额材料费': {base: 'FBFXDEJJCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  188. '分部分项定额施工机具使用费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  189. '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  190. '分部分项设备费': {base: 'FBFXSBF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  191. '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  192. '分部分项定额人工费调增': {base: 'FBFXDERGFTZ', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  193. '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
  194. '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  195. '组织措施项目定额人工费': {base: 'ZZCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  196. '组织措施项目定额材料费': {base: 'ZZCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  197. '组织措施项目定额施工机具使用费': {base: 'ZZCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  198. '技术措施项目费': {base: 'JSCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  199. '技术措施项目定额人工费': {base: 'JSCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  200. '技术措施项目定额材料费': {base: 'JSCSXMDEJJCLF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  201. '技术措施项目定额施工机具使用费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  202. '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  203. '技术措施项目设备费': {base: 'JSCSXMSBF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  204. '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  205. '技术措施项目定额人工费调增': {base: 'JSCSXMDERGFTZ', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  206. '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
  207. '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
  208. '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
  209. //不与清单直接关联
  210. '建筑面积': {base: 'JZMJ', class: 'FBFX'},
  211. '甲供定额人工费': {base: 'JGDEJJRGF', class: 'RCJ'},
  212. '甲供定额材料费': {base: 'JGDEJJCLF', class: 'RCJ'},
  213. '甲供定额施工机具使用费': {base: 'JGDEJJJXF', class: 'RCJ'},
  214. '甲供人工费': {base: 'JGRGF', class: 'RCJ'},
  215. '甲供材料费': {base: 'JGCLF', class: 'RCJ'},
  216. '甲供施工机具使用费': {base: 'JGJXF', class: 'RCJ'},
  217. '甲供主材费': {base: 'JGZCF', class: 'RCJ'},
  218. '甲供设备费': {base: 'JGSBF', class: 'RCJ'},
  219. '甲定定额人工费': {base: 'JDDEJJRGF', class: 'RCJ'},
  220. '甲定定额材料费': {base: 'JDDEJJCLF', class: 'RCJ'},
  221. '甲定定额施工机具使用费': {base: 'JDDEJJJXF', class: 'RCJ'},
  222. '甲定人工费': {base: 'JDRGF', class: 'RCJ'},
  223. '甲定材料费': {base: 'JDCLF', class: 'RCJ'},
  224. '甲定施工机具使用费': {base: 'JDJXF', class: 'RCJ'},
  225. '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
  226. '甲定设备费': {base: 'JDSBF', class: 'RCJ'},
  227. '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
  228. '分包费': {base: 'FBF', class: 'FBF'},
  229. '分包定额人工费': {base: 'FBDEJJRGF', class: 'FBF'},
  230. '分包定额材料费': {base: 'FBDEJJCLF', class: 'FBF'},
  231. '分包定额施工机具使用费': {base: 'FBDEJJJXF', class: 'FBF'},
  232. '分包主材费': {base: 'FBZCF', class: 'FBF'},
  233. '分包设备费': {base: 'FBSBF', class: 'FBF'},
  234. '分包人工工日': {base: 'FBRGGR', class: 'FBF'},
  235. '税前工程造价': {base: 'SQGCZJ', class: 'SQGCZJ',
  236. cycleCalcRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.OTHER, fixedFlag.CHARGE], //循环计算相关固定行,由于计算排除了本身,不用判断措施项目
  237. multiRef: [fixedFlag.SUB_ENGINERRING, fixedFlag.MEASURE, fixedFlag.OTHER, fixedFlag.CHARGE]},//相关固定行
  238. }
  239. }
  240. })();
  241. if(typeof module !== 'undefined'){
  242. module.exports = {
  243. getBillsCalcMode: getBillsCalcMode
  244. };
  245. }
  246. function getBillsCalcMode() {
  247. return 1
  248. }