item_increase_fee_view.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. /**
  2. * Created by zhang on 2020/1/17.
  3. */
  4. let itemBaseOptions = ["人工费","材料费","机械费","人工费+材料费","人工费+机械费","人工费+材料费","材料费+机械费","人工费+材料费+机械费"];
  5. let itemIncreaseFeeObj = {
  6. settingSpread:null,
  7. itemSetting:{
  8. header:[
  9. {headerName: "名称", headerWidth: 270, dataCode: "name", dataType: "String"},
  10. {headerName: "范围", headerWidth: 70, dataCode: "displayScope",hAlign: "center",dataType: "String",cellType:'cusButton',callback:'selectScope'},
  11. {headerName: "取费基数", headerWidth: 150, dataCode: "base", hAlign: "center", dataType: "String",cellType:'comboBox',options:itemBaseOptions},
  12. {headerName: "系数(%)", headerWidth: 55, dataCode: "coe", hAlign: "center", dataType: "Number",validator:"number"}
  13. ],
  14. view: {
  15. lockColumns: ["name","displayScope"],
  16. rowHeaderWidth:25,
  17. colHeaderHeight:36
  18. },
  19. autoFit:true,
  20. fitRow:['name'],
  21. callback:{
  22. selectScope:function (hitinfo) {
  23. $("#item_increase_scope").modal('show');
  24. }
  25. }
  26. },
  27. settingDatas:[],
  28. scopeSpread:null,
  29. scopeSetting:{
  30. header:[
  31. {headerName: "编码", headerWidth: 250, dataCode: "code", dataType: "String"},
  32. {headerName: "类别", headerWidth: 100, dataCode: "type",hAlign: "center",dataType: "String"},
  33. {headerName: "名称", headerWidth: 300, dataCode: "name", dataType: "String"},
  34. {headerName: "计取", headerWidth: 100, dataCode: "selected", hAlign: "center", dataType: "String",cellType:'checkBox'}
  35. ],
  36. view: {
  37. lockColumns: ["name","code","type","selected"],
  38. rowHeaderWidth:25,
  39. colHeaderHeight:36
  40. }
  41. },
  42. scopeDatas:[],
  43. initSpread:function () {
  44. if(this.settingSpread) return this.settingSpread.refresh();
  45. this.settingSpread = SheetDataHelper.createNewSpread($("#itemIncreaseFee_sheet")[0]);
  46. sheetCommonObj.spreadDefaultStyle(this.settingSpread);
  47. this.settingSheet = this.settingSpread.getSheet(0);
  48. sheetCommonObj.initSheet(this.settingSheet, this.itemSetting, 4);
  49. this.settingSheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onItemSelectionChange);
  50. this.settingSheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onItemValueChange);
  51. this.settingSheet.name('itemIncreaseFee_sheet');
  52. if(projectReadOnly){
  53. disableSpread(this.settingSpread);
  54. }
  55. },
  56. initScopeSpread:function () {
  57. if(this.scopeSpread) return this.scopeSpread.refresh();
  58. this.scopeSpread = SheetDataHelper.createNewSpread($("#scopeSheet")[0]);
  59. sheetCommonObj.spreadDefaultStyle(this.scopeSpread);
  60. this.scopeSheet = this.scopeSpread.getSheet(0);
  61. sheetCommonObj.initSheet(this.scopeSheet, this.scopeSetting, 0);
  62. this.scopeSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, this.onScopeCheckBoxClick);
  63. this.scopeSheet.name('scopeSheet');
  64. if(projectReadOnly){
  65. disableSpread(this.scopeSpread);
  66. }
  67. },
  68. getSelectedItem:function () {
  69. let selectedItem = null;
  70. let sel = this.settingSheet.getSelections()[0];
  71. if(sel.row != -1 && this.settingDatas.length>sel.row){
  72. selectedItem = this.settingDatas[sel.row];
  73. }
  74. return selectedItem;
  75. },
  76. showScopeDatas:function () {
  77. let controller = projectObj.mainController, project = projectObj.project;
  78. let allNodes=[];
  79. this.scopeDatas=[];
  80. let selectedItem = this.getSelectedItem();
  81. let fbfcNode = project.Bills.getFBFXNode(controller).source;//分部分项节点
  82. if(fbfcNode){
  83. allNodes.push(fbfcNode);
  84. controller.tree.getAllSubNode(project.Bills.getFBFXNode(controller).source,allNodes);
  85. }
  86. let meaNode = project.Bills.getMeasureNode(controller).source;//措施项目节点
  87. if(meaNode){
  88. allNodes.push(meaNode);
  89. controller.tree.getAllSubNode(project.Bills.getMeasureNode(controller).source,allNodes);
  90. }
  91. for(let row=0;row<allNodes.length;row++){
  92. let node = allNodes[row];
  93. let tem = {
  94. ID:node.data.ID,
  95. ParentID:node.data.ParentID,
  96. code:node.data.code,
  97. name:node.data.name,
  98. type:billText[node.data.type],
  99. selected:0,
  100. collapsed:false,
  101. row:row
  102. };
  103. if(selectedItem && selectedItem.scope&&selectedItem.scope[tem.ID]) tem.selected = 1;
  104. if(node.data.calcBase&&node.data.calcBase!="") delete tem.selected;//有基数计算的不可选
  105. this.scopeDatas.push(tem);
  106. }
  107. sheetCommonObj.showTreeData(this.scopeSheet, this.scopeSetting,this.scopeDatas);
  108. },
  109. onScopeCheckBoxClick:function (sender,args) {
  110. let me = itemIncreaseFeeObj;
  111. let checkboxValue = args.sheet.getCell(args.row, args.col).value();
  112. let newval = 0;
  113. checkboxValue?newval=0:newval=1;
  114. let record = me.scopeDatas[args.row];
  115. let dataMap= _.groupBy(me.scopeDatas,"ParentID");
  116. args.sheet.suspendPaint();
  117. args.sheet.suspendEvent();
  118. cascadeSelected(record,newval);
  119. args.sheet.resumeEvent();
  120. args.sheet.resumePaint();
  121. function cascadeSelected(parent,val) {
  122. if(gljUtil.isDef(parent.selected)){
  123. args.sheet.getCell(parent.row, args.col).value(val);
  124. parent.selected = val;
  125. if(dataMap[parent.ID]){
  126. for(let c of dataMap[parent.ID]){
  127. cascadeSelected(c,val);
  128. }
  129. }
  130. }
  131. }
  132. },
  133. onItemSelectionChange:function (sender,args) {
  134. args.sheet.repaint();
  135. },
  136. showDatas:function(datas){
  137. let sel = this.settingSheet.getSelections()[0];
  138. let oldData = sel.row<this.settingDatas.length?this.settingDatas[sel.row]:"";
  139. this.settingSheet.setRowCount(0);
  140. this.settingDatas = datas?datas:this.getItemSettingDatas();
  141. this.setItemForeStyle(this.settingDatas);
  142. sheetCommonObj.showData(this.settingSheet, this.itemSetting,this.settingDatas);
  143. this.settingSheet.setRowCount(this.settingDatas.length);
  144. sel.row = oldData?_.findIndex(this.settingDatas,{'name':oldData.name}):sel.row ;
  145. this.settingSheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
  146. },
  147. setItemForeStyle:function (datas) {
  148. for(let d of datas){
  149. if(_.isEmpty(d.scope)){
  150. d.foreColor = "#ff2a23";
  151. d.styleCol = 1;
  152. }else {
  153. delete d.foreColor;
  154. delete d.styleCol;
  155. }
  156. }
  157. },
  158. getItemSettingDatas:function () {
  159. let datas = [];
  160. if(projectObj.project.property.itemIncreaseSetting){
  161. for(let i of projectObj.project.property.itemIncreaseSetting.setting){
  162. let d = {name:i.name,displayScope:"范围",scope:i.scope,base:i.base,coe:i.coe};
  163. datas.push(d);
  164. }
  165. }
  166. return datas;
  167. },
  168. isItemIncrease: function (node) {
  169. return node
  170. && node.sourceType === ModuleNames.ration
  171. && node.data.type === rationType.itemIncrease;
  172. },
  173. onItemValueChange:function (sender,args) {
  174. let me = itemIncreaseFeeObj;
  175. let dataCode = me.itemSetting.header[args.col].dataCode;
  176. let value = args.newValue;
  177. let tem = me.settingDatas[args.row];
  178. if (value&&!sheetCommonObj.checkData(args.col,me.itemSetting,value)) {
  179. alert('输入的数据类型不对,请重新输入!');
  180. return me.showDatas(me.settingDatas);
  181. }
  182. if(dataCode == 'coe') {
  183. if (value) value = scMathUtil.roundForObj(value, 2);
  184. }
  185. tem[dataCode] = value;
  186. me.showDatas(me.settingDatas);
  187. me.itemChange = true;
  188. },
  189. confirmScope:function(){
  190. let selectedItem = this.getSelectedItem();
  191. let scope = {};
  192. for(let n of this.scopeDatas){
  193. if(n.selected == 1) scope[n.ID] = true;
  194. }
  195. if(JSON.stringify(scope) != JSON.stringify(selectedItem.scope)) this.itemChange = true;//有改变的情况下才更新
  196. selectedItem.scope=scope;
  197. this.showDatas(this.settingDatas);
  198. },
  199. confirmItemIncreaseSetting:async function () {
  200. if(this.itemChange == true || projectObj.project.property.itemIncreaseSetting.isCalc == false){
  201. let datas = [];
  202. let itemIncreaseSetting = {
  203. isCalc : true,
  204. setting :[]
  205. };
  206. for(let d of this.settingDatas){
  207. itemIncreaseSetting.setting.push({name:d.name,scope:d.scope,base:d.base,coe:d.coe});
  208. }
  209. let tem ={
  210. type:'project',
  211. data:{ID:projectObj.project.ID(),"property.itemIncreaseSetting":itemIncreaseSetting}
  212. };
  213. datas.push(tem);
  214. let changeNodes = this.calcAllItemIncreaseFee(itemIncreaseSetting,datas);
  215. console.log(datas);
  216. let selectedNode = projectObj.project.mainTree.selected;
  217. //刷新缓存和树节点的插入删除
  218. let nodes = await projectObj.project.syncUpdateNodesAndRefresh(datas);
  219. //重新计算
  220. cbTools.refreshFormulaNodes();
  221. projectObj.project.calcProgram.calcNodesAndSave(changeNodes.concat(nodes));
  222. projectObj.mainController.setTreeSelection(selectedNode);
  223. }
  224. },
  225. calcItemIncreaseFeeByNodes:async function (nodes) {
  226. let itemIncreaseSetting = projectObj.project.property.itemIncreaseSetting;
  227. let datas = [];
  228. let refreshNodes=[];
  229. let rationGLJMap ={};
  230. let uniqMap={};
  231. if(!itemIncreaseSetting) return;
  232. if(itemIncreaseSetting.isCalc == false) return;
  233. for (n of nodes){
  234. if(n.sourceType == ModuleNames.ration) n = n.parent;
  235. if(uniqMap[n.data.ID]) continue;//去重复
  236. let newRefreshNodes = this.calcItemIncreasePerNode(n,itemIncreaseSetting,rationGLJMap,datas);
  237. if(newRefreshNodes.length > 0) refreshNodes = refreshNodes.concat(newRefreshNodes);
  238. uniqMap[n.data.ID] = true;
  239. }
  240. if(datas.length >0 || refreshNodes.length > 0){
  241. let nodes = await projectObj.project.syncUpdateNodesAndRefresh(datas);
  242. //重新计算
  243. cbTools.refreshFormulaNodes();
  244. projectObj.project.calcProgram.calcNodesAndSave(refreshNodes.concat(nodes));
  245. }
  246. },
  247. cancelItemIncreaseFee:async function () {
  248. let itemIncreaseSetting = projectObj.project.property.itemIncreaseSetting;
  249. let datas = [];
  250. let refreshNodes = [];
  251. if(itemIncreaseSetting && itemIncreaseSetting.isCalc == true){
  252. itemIncreaseSetting.isCalc = false;
  253. let billNodeMap = {};
  254. let tem ={
  255. type:'project',
  256. data:{ID:projectObj.project.ID(),"property.itemIncreaseSetting":itemIncreaseSetting}
  257. };
  258. datas.push(tem);
  259. for(let s of itemIncreaseSetting.setting){
  260. if(!_.isEmpty(s.scope)){
  261. for (let ID in s.scope){
  262. billNodeMap[ID] = true;//为了去重复
  263. }
  264. }
  265. }
  266. for(let cancelID in billNodeMap){
  267. let tnode = projectObj.project.mainTree.getNodeByID(cancelID);
  268. if(tnode){
  269. let cNode = this.cancelBillNode(tnode,datas);
  270. if(cNode) refreshNodes.push(cNode);
  271. }
  272. }
  273. let selectedNode = projectObj.project.mainTree.selected;
  274. //刷新缓存和树节点的插入删除
  275. await projectObj.project.syncUpdateNodesAndRefresh(datas);
  276. if(refreshNodes.length > 0){
  277. //重新计算
  278. cbTools.refreshFormulaNodes();
  279. projectObj.project.calcProgram.calcNodesAndSave(refreshNodes);
  280. projectObj.mainController.setTreeSelection(selectedNode);
  281. }
  282. }
  283. },
  284. getAllBillsIDMap:function () {
  285. let map = {};
  286. let itemIncreaseSetting = projectObj.project.property.itemIncreaseSetting;
  287. if(itemIncreaseSetting.isCalc == true){
  288. for(let s of itemIncreaseSetting.setting){
  289. if(!_.isEmpty(s.scope)){
  290. for (let ID in s.scope){
  291. map[ID] = true;
  292. }
  293. }
  294. }
  295. }
  296. return map;
  297. },
  298. calcAllItemIncreaseFee : function(setting,datas){
  299. let refreshNodes = [];
  300. let itemIncreaseSetting = setting?setting:projectObj.project.property.itemIncreaseSetting;
  301. let billNodeMap = {},rationGLJMap={};
  302. let cancelBillsIDMap = this.getAllBillsIDMap();
  303. if(itemIncreaseSetting && itemIncreaseSetting.isCalc == true){
  304. //为了不用循环所有节点,先挑出所有受影响的节点
  305. for(let s of itemIncreaseSetting.setting){
  306. if(!_.isEmpty(s.scope)){
  307. for (let ID in s.scope){
  308. billNodeMap[ID] = true;//为了去重复
  309. delete cancelBillsIDMap[ID];
  310. }
  311. }
  312. }
  313. for(let billsID in billNodeMap){
  314. let node = projectObj.project.mainTree.getNodeByID(billsID);
  315. let newRefreshNodes = this.calcItemIncreasePerNode(node,itemIncreaseSetting,rationGLJMap,datas);
  316. if(newRefreshNodes.length > 0) refreshNodes = refreshNodes.concat(newRefreshNodes);
  317. }
  318. //删除取消范围的清单下的子目定额
  319. for(let cancelID in cancelBillsIDMap){
  320. let tnode = projectObj.project.mainTree.getNodeByID(cancelID);
  321. let cNode = this.cancelBillNode(tnode,datas);
  322. if(cNode) refreshNodes.push(cNode);
  323. }
  324. }
  325. return refreshNodes;
  326. },
  327. cancelBillNode:function (node,datas) {
  328. if (node.children.length <= 0) return null;//如果没子项,不用计算
  329. if (node.source.children.length > 0) return null;//如果不是清单叶子节点,不用计算
  330. let isDelete = false;
  331. for(let rationNode of node.children){
  332. if(rationNode.data.code.indexOf("ZMZJF")!= -1){
  333. datas.push({type:ModuleNames.ration,data:{ID:rationNode.data.ID},action:"delete"});
  334. isDelete = true;
  335. }
  336. }
  337. return isDelete == true?node:null;
  338. },
  339. calcItemIncreasePerNode:function (node,setting,rationGLJMap,datas) {
  340. let itemIncreaseSetting = setting ? setting : projectObj.project.property.itemIncreaseSetting;
  341. let refreshNodes = [],rationCodeMap={},FeeMap={},updateDataIDMap={};
  342. if (node.children.length <= 0) return [];//如果没子项,不用计算
  343. if (node.source.children.length > 0) return [];//如果不是清单叶子节点,不用计算
  344. let labourTotal = 0,materialTotal=0,machineTotal=0;
  345. let process = getDecimal("process");
  346. let td = getDecimal("ration.totalPrice");
  347. let gd = getDecimal('glj.quantity');
  348. let preID="",serialNo=1;
  349. let manageFeeRate = null;
  350. for(let rationNode of node.children){
  351. rationCodeMap[rationNode.data.code] = rationNode;
  352. if(rationNode.data.type == rationType.ration || rationNode.data.type == rationType.volumePrice ){//先只汇总定额和量价类型,不考虑自动生成的
  353. if(manageFeeRate == null) manageFeeRate = rationNode.data.manageFeeRate;
  354. //计算人工费,材料费,机械费
  355. if(rationNode.data.feesIndex){
  356. let labour = rationNode.data.feesIndex.labour && rationNode.data.feesIndex.labour.totalFee?parseFloat(rationNode.data.feesIndex.labour.totalFee):0;
  357. let material = rationNode.data.feesIndex.material && rationNode.data.feesIndex.material.totalFee?parseFloat(rationNode.data.feesIndex.material.totalFee):0;
  358. let machine = rationNode.data.feesIndex.machine && rationNode.data.feesIndex.machine.totalFee?parseFloat(rationNode.data.feesIndex.machine.totalFee):0;
  359. labourTotal = scMathUtil.roundForObj(labourTotal + labour,getDecimal("process"));
  360. materialTotal = scMathUtil.roundForObj(materialTotal + material,getDecimal("process"));
  361. machineTotal = scMathUtil.roundForObj(machineTotal + machine,getDecimal("process"));
  362. }
  363. }
  364. if(rationNode.data.type != rationType.itemIncrease ){//计录除了子目增加节点外最后的节点ID,和nexeID
  365. preID = rationNode.data.ID;
  366. serialNo = rationNode.data.serialNo;
  367. }
  368. }
  369. FeeMap['人工费'] = labourTotal;
  370. FeeMap['材料费'] = materialTotal;
  371. FeeMap['机械费'] = machineTotal;
  372. //ZMZJF_1
  373. let s_in = 0;//序列号增长
  374. for(let i = 0; i < itemIncreaseSetting.setting.length;i++){
  375. let s = itemIncreaseSetting.setting[i];
  376. if(s.scope&&s.scope[node.data.ID]){
  377. let feeIndexArry = s.base.split("+");
  378. let total = 0;
  379. for(let index of feeIndexArry){
  380. total = scMathUtil.roundForObj(total + FeeMap[index],process);
  381. }
  382. total = scMathUtil.roundForObj(total,td);
  383. if(s.coe){
  384. let t = scMathUtil.roundForObj(total * s.coe/100,process);
  385. total = t;//scMathUtil.roundForObj(total + t,gd);
  386. }
  387. let seq = i+1;
  388. let code = "ZMZJF_"+seq;
  389. let ZMZJFnode = rationCodeMap[code];
  390. if(total > 0) {
  391. if(ZMZJFnode){//存在的话更新其它人工费消耗量
  392. this.updateItemNode(ZMZJFnode,total,rationGLJMap,datas);
  393. if(s_in>0){
  394. datas.push({type:ModuleNames.ration,data:{ID:ZMZJFnode.data.ID,serialNo:ZMZJFnode.data.serialNo +1}});
  395. } else {//如果s_in>0时,ZMZJFnode会因为有更新而刷新,不用push到refreshNodes里
  396. refreshNodes.push(ZMZJFnode);
  397. }
  398. preID = ZMZJFnode.data.ID;
  399. serialNo = ZMZJFnode.data.serialNo;
  400. }else {//不存在的话插入新的节点
  401. s_in = s_in +1;
  402. serialNo = serialNo+1;
  403. let newRationData = this.inserNewItemNodes(node.data.ID,node.data.quantity,preID,serialNo,code,s.name,total,datas);
  404. preID = newRationData.ID;
  405. if(!_.isEmpty(installationFeeObj.feeRateMap))newRationData.manageFeeRate = manageFeeRate;
  406. }
  407. }else { //如果total小于0,但又存在的话,删除定额(同时后端处理时记得要删除定额工料机)
  408. if(ZMZJFnode){
  409. datas.push({type:ModuleNames.ration,data:{ID:ZMZJFnode.data.ID},action:"delete"});
  410. if(refreshNodes.length == 0) refreshNodes.push(node);//删除时,如果清单下没有定额更新,则刷新清单节点就行
  411. }
  412. }
  413. }
  414. }
  415. return refreshNodes;
  416. },
  417. updateItemNode:function (node,total,rationGLJMap,datas) {
  418. if(_.isEmpty(rationGLJMap)) this.setRationGLJMap(rationGLJMap);
  419. if(rationGLJMap[node.data.ID] && rationGLJMap[node.data.ID].quantity != total){
  420. datas.push({type:ModuleNames.ration_glj,data:{ID:rationGLJMap[node.data.ID].ID,quantity:total}})
  421. }
  422. },
  423. setRationGLJMap:function (rationGLJMap) {
  424. let gljList = projectObj.project.ration_glj.datas;
  425. for (let g of gljList){
  426. if(g.code == 'QTRGF') rationGLJMap[g.rationID] = g;
  427. }
  428. },
  429. inserNewItemNodes:function (billsItemID,billsQuantity,preID,serialNo,code,name,total,datas) {
  430. let Ration = projectObj.project.Ration;
  431. let newRationData = Ration.getTempRationData(Ration.getNewRationID(), billsItemID, serialNo, rationType.itemIncrease);
  432. newRationData.code = code;
  433. newRationData.name=name;
  434. newRationData.unit = '元';
  435. newRationData.quantity = "1";
  436. if(billsQuantity) newRationData.contain = scMathUtil.roundForObj(1/parseFloat(billsQuantity),getDecimal("process"))+"";
  437. newRationData.quantityEXP = '1';
  438. datas.push({type:ModuleNames.ration,data:newRationData,preSiblingID:preID,action:"add",parentID:billsItemID});
  439. let newRationGLJ = {
  440. rationID:newRationData.ID,
  441. billsItemID:billsItemID,
  442. shortName:projectObj.project.projectGLJ.getShortNameByID(gljType.LABOUR),
  443. GLJID:-1,
  444. projectID:newRationData.projectID,
  445. code:'QTRGF',
  446. original_code:'QTRGF',
  447. name:'其它人工费',
  448. specs:'',
  449. unit:'元',
  450. type:gljType.LABOUR,
  451. basePrice:1,
  452. marketPrice:1,
  453. adjCoe:null,
  454. from:'std',
  455. repositoryId:-1,
  456. quantity:total+"",
  457. rationItemQuantity:total+""
  458. };
  459. datas.push({type:ModuleNames.ration_glj,data:newRationGLJ,action:"add"});
  460. return newRationData;
  461. }
  462. };
  463. $(function () {
  464. $('#itemIncreaseFeeDiv').on('shown.bs.modal', function (e) {
  465. itemIncreaseFeeObj.itemChange = false;
  466. itemIncreaseFeeObj.initSpread();
  467. itemIncreaseFeeObj.showDatas();
  468. });
  469. $('#item_increase_scope').on('shown.bs.modal', function (e) {
  470. itemIncreaseFeeObj.initScopeSpread();
  471. itemIncreaseFeeObj.showScopeDatas();
  472. });
  473. $("#select_scope_confirm").click(function () {
  474. itemIncreaseFeeObj.confirmScope();
  475. })
  476. $("#itemIncreaseFeeConfirm").click(function () {
  477. itemIncreaseFeeObj.confirmItemIncreaseSetting();
  478. })
  479. });