jiangxi_2017.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. /**
  2. * Created by CSL on 2018/11/12. 江西计算程序、基数 等覆盖。
  3. */
  4. let isJX2017 = true;
  5. // 一般计税取不含税市场价、不含税定额价。简易计税取含税市场价、含税定额价。打开项目时,4个价格根据计税类型只载入其二,所以这里可不作区分。
  6. function overwriteRationCalcBases (taxType){
  7. if (typeof rationCalcBases == 'undefined') return;
  8. for (let key in rationCalcBases) delete rationCalcBases[key];
  9. // let isJY = taxType == '2';
  10. rationCalcBases['人工费'] = function (node, isTender) {
  11. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender);
  12. };
  13. rationCalcBases['定额人工费'] = function (node, isTender) {
  14. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptBasePrice, isTender);
  15. };
  16. rationCalcBases['材料费'] = function (node, isTender) {
  17. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender);
  18. };
  19. rationCalcBases['机械费'] = function (node, isTender) {
  20. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender);
  21. };
  22. rationCalcBases['定额机械费'] = function (node, isTender) {
  23. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptBasePrice, isTender);
  24. };
  25. rationCalcBases['主材费'] = function (node, isTender) {
  26. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender);
  27. };
  28. rationCalcBases['设备费'] = function (node, isTender) {
  29. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender);
  30. };
  31. rationCalcBases['人工费价差'] = function (node, isTender) {
  32. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptDiffPrice, isTender);
  33. };
  34. rationCalcBases['材料费价差'] = function (node, isTender) {
  35. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptDiffPrice, isTender);
  36. };
  37. rationCalcBases['机械费价差'] = function (node, isTender) {
  38. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptDiffPrice, isTender);
  39. };
  40. rationCalcBases['主材费价差'] = function (node, isTender) {
  41. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptDiffPrice, isTender);
  42. };
  43. rationCalcBases['设备费价差'] = function (node, isTender) {
  44. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptDiffPrice, isTender);
  45. };
  46. rationCalcBases['人工工日'] = function (node, isTender) {
  47. return calcTools.labourDays(node, isTender);
  48. };
  49. rationCalcBases['甲供人工费'] = function (node, isTender) {
  50. return calcTools.partASupplyFee(node, '甲供人工费', isTender, false);
  51. };
  52. rationCalcBases['甲供材料费'] = function (node, isTender) {
  53. return calcTools.partASupplyFee(node, '甲供材料费', isTender, false);
  54. };
  55. rationCalcBases['甲供机械费'] = function (node, isTender) {
  56. return calcTools.partASupplyFee(node, '甲供机械费', isTender, false);
  57. };
  58. rationCalcBases['甲供主材费'] = function (node, isTender) {
  59. return calcTools.partASupplyFee(node, '甲供主材费', isTender, false);
  60. };
  61. rationCalcBases['甲供设备费'] = function (node, isTender) {
  62. return calcTools.partASupplyFee(node, '甲供设备费', isTender, false);
  63. };
  64. rationCalcBases['甲定人工费'] = function (node, isTender) {
  65. return calcTools.partASupplyFee(node, '甲定人工费', isTender, false);
  66. };
  67. rationCalcBases['甲定材料费'] = function (node, isTender) {
  68. return calcTools.partASupplyFee(node, '甲定材料费', isTender, false);
  69. };
  70. rationCalcBases['甲定机械费'] = function (node, isTender) {
  71. return calcTools.partASupplyFee(node, '甲定机械费', isTender, false);
  72. };
  73. rationCalcBases['甲定主材费'] = function (node, isTender) {
  74. return calcTools.partASupplyFee(node, '甲定主材费', isTender, false);
  75. };
  76. rationCalcBases['甲定设备费'] = function (node, isTender) {
  77. return calcTools.partASupplyFee(node, '甲定设备费', isTender, false);
  78. };
  79. rationCalcBases['暂估材料费'] = function (node, isTender) {
  80. return calcTools.estimateFee(node, true, isTender);
  81. };
  82. rationCalcBases['分包人工费'] = function (node, isTender) {
  83. if (node.data.isSubcontract)
  84. return calcTools.rationBaseFee(node, [gljType.LABOUR], priceTypes.ptMarketPrice, isTender)
  85. else
  86. return 0;
  87. };
  88. rationCalcBases['分包材料费'] = function (node, isTender) {
  89. if (node.data.isSubcontract)
  90. return calcTools.rationBaseFee(node, baseMaterialTypes, priceTypes.ptMarketPrice, isTender)
  91. else
  92. return 0;
  93. };
  94. rationCalcBases['分包机械费'] = function (node, isTender) {
  95. if (node.data.isSubcontract)
  96. return calcTools.rationBaseFee(node, baseMachineTypes, priceTypes.ptMarketPrice, isTender)
  97. else
  98. return 0;
  99. };
  100. rationCalcBases['分包主材费'] = function (node, isTender) {
  101. if (node.data.isSubcontract)
  102. return calcTools.rationBaseFee(node, [gljType.MAIN_MATERIAL], priceTypes.ptMarketPrice, isTender)
  103. else
  104. return 0;
  105. };
  106. rationCalcBases['分包设备费'] = function (node, isTender) {
  107. if (node.data.isSubcontract)
  108. return calcTools.rationBaseFee(node, [gljType.EQUIPMENT], priceTypes.ptMarketPrice, isTender)
  109. else
  110. return 0;
  111. };
  112. rationCalcBases['分包人工工日'] = function (node, isTender) {
  113. if (node.data.isSubcontract)
  114. return calcTools.labourDays(node, isTender)
  115. else
  116. return 0;
  117. };
  118. };
  119. (function overwriteFeeTypes() {
  120. if (typeof cpFeeTypes == 'undefined') return;
  121. cpFeeTypes = [
  122. {type: 'direct', name: '直接费'},
  123. {type: 'labour', name: '人工费'},
  124. {type: 'marketLabour', name: '市场价人工费'},
  125. {type: 'marketMaterial', name: '市场价材料费'},
  126. {type: 'machine', name: '机械费'},
  127. {type: 'marketMachine', name: '市场价机械费'},
  128. {type: 'mainMaterial', name: '主材费'},
  129. {type: 'equipment', name: '设备费'},
  130. {type: 'manage', name: '企业管理费'},
  131. {type: 'surtax', name: '附加税费'},
  132. {type: 'profit', name: '利润'},
  133. {type: 'safeMeasures', name: '安全文明施工措施费'},
  134. {type: 'environment', name: '安全文明环保费'},
  135. {type: 'tempFacility', name: '临时设施费'},
  136. {type: 'otherTotalMeasures', name: '其他总价措施费'},
  137. {type: 'dirtMeasures', name: '扬尘治理措施费'},
  138. {type: 'forceFee', name: '规费'},
  139. {type: 'tax', name: '税金'},
  140. {type: 'common', name: '工程造价'}
  141. ];
  142. })();
  143. //清单计算基数相关
  144. if(typeof baseFigureMap !== 'undefined'){
  145. baseFigureMap = {
  146. //与清单直接关联=======
  147. '分部分项工程费': {base: 'FBFXGCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  148. '分部分项直接费': {base: 'FBFXZJF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  149. '分部分项定额人工费': {base: 'FBFXDEJJRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  150. '分部分项人工费': {base: 'FBFXRGF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  151. '分部分项材料费': {base: 'FBFXCLF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  152. '分部分项定额机械费': {base: 'FBFXDEJJJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  153. '分部分项机械费': {base: 'FBFXJXF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  154. '分部分项主材费': {base: 'FBFXZCF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  155. '分部分项设备费': {base: 'FBFXSBF', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  156. '分部分项人工工日': {base: 'FBFXRGGR', fixedFlag: fixedFlag.SUB_ENGINERRING, class: 'FBFX'},
  157. '措施项目费': {base: 'CSXMF', fixedFlag: fixedFlag.MEASURE, class: 'CSXM'},
  158. '组织措施项目费': {base: 'ZZCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  159. '组织措施项目人工费': {base: 'ZZCSXMRGF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  160. '组织措施项目材料费': {base: 'ZZCSXMCLF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  161. '组织措施项目机械费': {base: 'ZZCSXMJXF', fixedFlag: fixedFlag.CONSTRUCTION_ORGANIZATION, class: 'CSXM'},
  162. '技术措施项目费': {base: 'JSCSXMF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  163. '技术措施项目定额人工费': {base: 'JSCSXMDEJJRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  164. '技术措施项目人工费': {base: 'JSCSXMRGF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  165. '技术措施项目材料费': {base: 'JSCSXMCLF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  166. '技术措施项目定额机械费': {base: 'JSCSXMDEJJJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  167. '技术措施项目机械费': {base: 'JSCSXMJXF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  168. '技术措施项目主材费': {base: 'JSCSXMZCF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  169. '技术措施项目设备费': {base: 'JSCSXMSBF', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  170. '技术措施项目人工工日': {base: 'JSCSXMRGGR', fixedFlag: fixedFlag.CONSTRUCTION_TECH, class: 'CSXM'},
  171. '其他项目费': {base: 'QTXMF', fixedFlag: fixedFlag.OTHER, class: 'QTXM'},
  172. '规费': {base: 'GF', fixedFlag: fixedFlag.CHARGE, class: 'GF'},
  173. '税金': {base: 'SJ', fixedFlag: fixedFlag.TAX, class: 'SJ'},
  174. //不于清单直接关联==========
  175. '建筑面积': {base: 'JZMJ', class: 'FBFX'},
  176. '人材机价差': {base: 'RCJJC', class: 'RCJ'},
  177. '人工价差': {base: 'RGJC', class: 'RCJ'},
  178. '材料价差': {base: 'CLJC', class: 'RCJ'},
  179. '机械价差': {base: 'JXJC', class: 'RCJ'},
  180. '甲供人工费': {base: 'JGRGF', class: 'RCJ'},
  181. '甲供材料费': {base: 'JGCLF', class: 'RCJ'},
  182. '甲供机械费': {base: 'JGJXF', class: 'RCJ'},
  183. '甲供主材费': {base: 'JGZCF', class: 'RCJ'},
  184. '甲供设备费': {base: 'JGSBF', class: 'RCJ'},
  185. '甲定人工费': {base: 'JDRGF', class: 'RCJ'},
  186. '甲定材料费': {base: 'JDCLF', class: 'RCJ'},
  187. '甲定机械费': {base: 'JDJXF', class: 'RCJ'},
  188. '甲定主材费': {base: 'JDZCF', class: 'RCJ'},
  189. '甲定设备费': {base: 'JDSBF', class: 'RCJ'},
  190. '暂估材料费(从子目汇总)': {base: 'ZGCLFFZM', class: 'RCJ'},
  191. '分包费': {base: 'FBF', class: 'FBF'},
  192. '分包人工费': {base: 'FBRGF', class: 'FBF'},
  193. '分包材料费': {base: 'FBCLF', class: 'FBF'},
  194. '分包机械费': {base: 'FBJXF', class: 'FBF'},
  195. '分包主材费': {base: 'FBZCF', class: 'FBF'},
  196. '分包设备费': {base: 'FBSBF', class: 'FBF'},
  197. '分包人工工日': {base: 'FBRGGR', class: 'FBF'},
  198. '估价项目定额人工费': {base: 'GJXMDERGF', class: 'GJXM'},
  199. '估价项目定额机械费': {base: 'GJXMDEJXF', class: 'GJXM'},
  200. '估价项目直接费': {base: 'GJXMZJF', class: 'GJXM'},
  201. '估价项目人工费': {base: 'GJXMRGF', class: 'GJXM'},
  202. '估价项目材料费': {base: 'GJXMCLF', class: 'GJXM'},
  203. '估价项目机械费': {base: 'GJXMJXF', class: 'GJXM'},
  204. '估价项目主材费': {base: 'GJXMZCF', class: 'GJXM'},
  205. '估价项目工日': {base: 'GJXMGR', class: 'GJXM'},
  206. };
  207. }
  208. if(typeof baseFigureTemplate !== 'undefined'){
  209. baseFigureTemplate['FBFXZJF'] = function (tender) {//分部分项直接费
  210. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.SUB_ENGINERRING])){
  211. return 0;
  212. }
  213. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  214. let bill = calcBase.fixedBills[fixedFlag.SUB_ENGINERRING]['bill'];
  215. if(cbTools.isUnDef(bill)) return 0;
  216. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  217. return cbTools.isDef(bill.feesIndex.direct) && cbTools.isDef(bill.feesIndex.direct[totalFeeType]) ? bill.feesIndex.direct[totalFeeType] : 0;
  218. };
  219. baseFigureTemplate['FBFXRGF'] = function (tender) {//分部分项人工费(市场人工费)
  220. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.SUB_ENGINERRING])){
  221. return 0;
  222. }
  223. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  224. let bill = calcBase.fixedBills[fixedFlag.SUB_ENGINERRING]['bill'];
  225. if(cbTools.isUnDef(bill)) return 0;
  226. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  227. return cbTools.isDef(bill.feesIndex.marketLabour) && cbTools.isDef(bill.feesIndex.marketLabour[totalFeeType]) ? bill.feesIndex.marketLabour[totalFeeType] : 0;
  228. };
  229. baseFigureTemplate['FBFXCLF'] = function (tender) {//分部分项材料费(市场材料费)
  230. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.SUB_ENGINERRING])){
  231. return 0;
  232. }
  233. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  234. let bill = calcBase.fixedBills[fixedFlag.SUB_ENGINERRING]['bill'];
  235. if(cbTools.isUnDef(bill)) return 0;
  236. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  237. return cbTools.isDef(bill.feesIndex.marketMaterial) && cbTools.isDef(bill.feesIndex.marketMaterial[totalFeeType]) ? bill.feesIndex.marketMaterial[totalFeeType] : 0;
  238. };
  239. baseFigureTemplate['FBFXJXF'] = function (tender) {//分部分项机械费(市场机械费)
  240. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.SUB_ENGINERRING])){
  241. return 0;
  242. }
  243. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  244. let bill = calcBase.fixedBills[fixedFlag.SUB_ENGINERRING]['bill'];
  245. if(cbTools.isUnDef(bill)) return 0;
  246. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  247. return cbTools.isDef(bill.feesIndex.marketMachine) && cbTools.isDef(bill.feesIndex.marketMachine[totalFeeType]) ? bill.feesIndex.marketMachine[totalFeeType] : 0;
  248. };
  249. baseFigureTemplate['ZZCSXMRGF'] = function (tender) {//组织措施项目人工费(市场人工费)
  250. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.CONSTRUCTION_ORGANIZATION])){
  251. return 0;
  252. }
  253. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  254. let bill = calcBase.fixedBills[fixedFlag.CONSTRUCTION_ORGANIZATION]['bill'];
  255. if(cbTools.isUnDef(bill)) return 0;
  256. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  257. return cbTools.isDef(bill.feesIndex.marketLabour) && cbTools.isDef(bill.feesIndex.marketLabour[totalFeeType]) ? bill.feesIndex.marketLabour[totalFeeType] : 0;
  258. };
  259. baseFigureTemplate['ZZCSXMCLF'] = function (tender) {//组织措施项目材料费(市场材料费)
  260. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.CONSTRUCTION_ORGANIZATION])){
  261. return 0;
  262. }
  263. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  264. let bill = calcBase.fixedBills[fixedFlag.CONSTRUCTION_ORGANIZATION]['bill'];
  265. if(cbTools.isUnDef(bill)) return 0;
  266. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  267. return cbTools.isDef(bill.feesIndex.marketMaterial) && cbTools.isDef(bill.feesIndex.marketMaterial[totalFeeType]) ? bill.feesIndex.marketMaterial[totalFeeType] : 0;
  268. };
  269. baseFigureTemplate['ZZCSXMJXF'] = function (tender) {//组织措施项目机械费(市场机械费)
  270. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.CONSTRUCTION_ORGANIZATION])){
  271. return 0;
  272. }
  273. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  274. let bill = calcBase.fixedBills[fixedFlag.CONSTRUCTION_ORGANIZATION]['bill'];
  275. if(cbTools.isUnDef(bill)) return 0;
  276. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  277. return cbTools.isDef(bill.feesIndex.marketMachine) && cbTools.isDef(bill.feesIndex.marketMachine[totalFeeType]) ? bill.feesIndex.marketMachine[totalFeeType] : 0;
  278. };
  279. baseFigureTemplate['JSCSXMRGF'] = function (tender) {//技术措施项目人工费(市场人工费)
  280. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.CONSTRUCTION_TECH])){
  281. return 0;
  282. }
  283. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  284. let bill = calcBase.fixedBills[fixedFlag.CONSTRUCTION_TECH]['bill'];
  285. if(cbTools.isUnDef(bill)) return 0;
  286. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  287. return cbTools.isDef(bill.feesIndex.marketLabour) && cbTools.isDef(bill.feesIndex.marketLabour[totalFeeType]) ? bill.feesIndex.marketLabour[totalFeeType] : 0;
  288. };
  289. baseFigureTemplate['JSCSXMCLF'] = function (tender) {//技术措施项目材料费(市场材料费)
  290. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.CONSTRUCTION_TECH])){
  291. return 0;
  292. }
  293. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  294. let bill = calcBase.fixedBills[fixedFlag.CONSTRUCTION_TECH]['bill'];
  295. if(cbTools.isUnDef(bill)) return 0;
  296. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  297. return cbTools.isDef(bill.feesIndex.marketMaterial) && cbTools.isDef(bill.feesIndex.marketMaterial[totalFeeType]) ? bill.feesIndex.marketMaterial[totalFeeType] : 0;
  298. };
  299. baseFigureTemplate['JSCSXMJXF'] = function (tender) {//技术措施项目机械费(市场机械费)
  300. if(cbTools.isUnDef(calcBase.fixedBills[fixedFlag.CONSTRUCTION_TECH])){
  301. return 0;
  302. }
  303. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  304. let bill = calcBase.fixedBills[fixedFlag.CONSTRUCTION_TECH]['bill'];
  305. if(cbTools.isUnDef(bill)) return 0;
  306. if(cbTools.isUnDef(bill.feesIndex) || Object.keys(bill.feesIndex).length === 0) return 0;
  307. return cbTools.isDef(bill.feesIndex.marketMachine) && cbTools.isDef(bill.feesIndex.marketMachine[totalFeeType]) ? bill.feesIndex.marketMachine[totalFeeType] : 0;
  308. };
  309. baseFigureTemplate['FBRGF'] = function (tender) {//分包人工费(市场人工费)
  310. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  311. let rst = 0;
  312. let rations = calcBase.project.Ration.datas;
  313. for(let ration of rations){
  314. if(ration.isSubcontract && ration.feesIndex && ration.feesIndex.marketLabour){
  315. rst = parseFloat(rst + ration.feesIndex.marketLabour[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  316. }
  317. }
  318. return rst;
  319. };
  320. baseFigureTemplate['FBCLF'] = function (tender) {//分包材料费(市场材料费)
  321. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  322. let rst = 0;
  323. let rations = calcBase.project.Ration.datas;
  324. for(let ration of rations){
  325. if(ration.isSubcontract && ration.feesIndex && ration.feesIndex.marketMaterial){
  326. rst = parseFloat(rst + ration.feesIndex.marketMaterial[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  327. }
  328. }
  329. return rst;
  330. };
  331. baseFigureTemplate['FBJXF'] = function (tender) {//分包机械费(市场机械费)
  332. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  333. let rst = 0;
  334. let rations = calcBase.project.Ration.datas;
  335. for(let ration of rations){
  336. if(ration.isSubcontract && ration.feesIndex && ration.feesIndex.marketMachine){
  337. rst = parseFloat(rst + ration.feesIndex.marketMachine[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  338. }
  339. }
  340. return rst;
  341. };
  342. baseFigureTemplate['GJXMDERGF'] = function (tender) {//估计项目定额人工费
  343. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  344. let rst = 0;
  345. let rations = calcBase.project.Ration.datas;
  346. for(let ration of rations){
  347. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.labour){
  348. rst = parseFloat(rst + ration.feesIndex.labour[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  349. }
  350. }
  351. return rst;
  352. };
  353. baseFigureTemplate['GJXMDEJXF'] = function (tender) {//估计项目定额机械费
  354. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  355. let rst = 0;
  356. let rations = calcBase.project.Ration.datas;
  357. for(let ration of rations){
  358. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.machine){
  359. rst = parseFloat(rst + ration.feesIndex.machine[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  360. }
  361. }
  362. return rst;
  363. };
  364. baseFigureTemplate['GJXMZJF'] = function (tender) {//估计项目直接费
  365. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  366. let rst = 0;
  367. let rations = calcBase.project.Ration.datas;
  368. for(let ration of rations){
  369. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.direct){
  370. rst = parseFloat(rst + ration.feesIndex.direct[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  371. }
  372. }
  373. return rst;
  374. };
  375. baseFigureTemplate['GJXMRGF'] = function (tender) {//估计项目人工费(市场人工费)
  376. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  377. let rst = 0;
  378. let rations = calcBase.project.Ration.datas;
  379. for(let ration of rations){
  380. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.marketLabour){
  381. rst = parseFloat(rst + ration.feesIndex.marketLabour[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  382. }
  383. }
  384. return rst;
  385. };
  386. baseFigureTemplate['GJXMCLF'] = function (tender) {//估计项目材料费(市场材料费)
  387. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  388. let rst = 0;
  389. let rations = calcBase.project.Ration.datas;
  390. for(let ration of rations){
  391. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.marketMaterial){
  392. rst = parseFloat(rst + ration.feesIndex.marketMaterial[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  393. }
  394. }
  395. return rst;
  396. };
  397. baseFigureTemplate['GJXMJXF'] = function (tender) {//估计项目机械费(市场机械费)
  398. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  399. let rst = 0;
  400. let rations = calcBase.project.Ration.datas;
  401. for(let ration of rations){
  402. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.marketMachine){
  403. rst = parseFloat(rst + ration.feesIndex.marketMachine[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  404. }
  405. }
  406. return rst;
  407. };
  408. baseFigureTemplate['GJXMZCF'] = function (tender) {//估计项目主材费
  409. const totalFeeType = tender ? 'tenderTotalFee' : 'totalFee';
  410. let rst = 0;
  411. let rations = calcBase.project.Ration.datas;
  412. for(let ration of rations){
  413. if(ration.evaluationProject && ration.feesIndex && ration.feesIndex.mainMaterial){
  414. rst = parseFloat(rst + ration.feesIndex.mainMaterial[totalFeeType]).toDecimal(decimalObj.ration.totalPrice)
  415. }
  416. }
  417. return rst;
  418. };
  419. baseFigureTemplate['GJXMGR'] = function (tender) {//估计项目工日
  420. const quantityType = tender ? 'tenderQuantity' : 'quantity';
  421. let rst = 0;
  422. let rations = calcBase.project.Ration.datas;
  423. let rationGljs = calcBase.project.ration_glj.datas;
  424. for (let ration of rations) {
  425. if (ration.evaluationProject && ration.type === rationType.ration) {
  426. for(let glj of rationGljs){
  427. if(ration.ID === glj.rationID && glj.type === gljType.LABOUR){
  428. rst = parseFloat(rst + parseFloat(glj[quantityType] * ration[quantityType]).toDecimal(decimalObj.glj.quantity)).toDecimal(decimalObj.glj.quantity);
  429. }
  430. }
  431. }
  432. }
  433. return rst;
  434. };
  435. }
  436. //增加清单基数分类估价项目、去除分类税前工程造价
  437. if(typeof $ !== 'undefined' && $('#cbClassList')){
  438. $('#cbClassList').find('li:eq(8)').remove();
  439. let $li = $('<li class="py-1"><a id="cb_GJXM" href="javascript:void(0);">估价项目</a></li>');
  440. $li.insertAfter($('#cbClassList').find('li:eq(4)'));
  441. }
  442. if (typeof calcBaseView !== 'undefined') {
  443. calcBaseView.billsCBClass = {ALL: [], FBFX: [], CSXM: [], QTXM: [], FBF: [], RCJ: [], GF: [], SJ: [], GJXM: []};
  444. }