neimenggu_2017.js 12 KB

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