fee_rate.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /**
  2. * Created by CSL on 2017-06-20.
  3. */
  4. //var ModuleNames = require('./main_consts.js');
  5. var FeeRate = {
  6. createNew: function (project) {
  7. function FeeRate(proj){
  8. this.datas = null;
  9. this.sourceType = ModuleNames.feeRate;
  10. proj.registerModule(ModuleNames.feeRate, this);
  11. };
  12. FeeRate.prototype.loadData = function (datas) {
  13. this.datas = datas;
  14. };
  15. /* FeeRate.prototype.getViewDatas = function(){
  16. var rates=[];
  17. _.forEach(this.datas,function (item) {
  18. if(item.status == 'activate'){
  19. rates= item.rates;
  20. }
  21. })
  22. return rates;
  23. };*/
  24. FeeRate.prototype.getActivateFeeRate = function () {
  25. var feeRate=null;
  26. _.forEach(this.datas,function (item) {
  27. if(item.status == 'activate'){
  28. feeRate= item;
  29. }
  30. })
  31. return feeRate;
  32. };
  33. FeeRate.prototype.getSubViewData= function(item) {
  34. var datas = [];
  35. if(item.hasOwnProperty('subFeeRate')&&item.subFeeRate!=undefined){
  36. datas = item.subFeeRate.recodes;
  37. }
  38. return datas;
  39. };
  40. FeeRate.prototype.getValueMap= function(item) {
  41. var valueMap = {};
  42. if(item.hasOwnProperty('subFeeRate')&&item.subFeeRate!=undefined){
  43. var recodes = item.subFeeRate.valueMaps;
  44. _.forEach(recodes,function (r) {
  45. valueMap[r.ID] = r.value;
  46. })
  47. return valueMap;
  48. }else {
  49. return null;
  50. }
  51. };
  52. FeeRate.prototype.getOptions=function (options,subRates,parentID,itemID) {
  53. var data = {};
  54. var list = _.filter(subRates, {'ParentID':parentID});
  55. if(list&&list.length>0){
  56. if(parentID==-1){
  57. data.ID = itemID+'_'+0;
  58. }else {
  59. data.ID = itemID+'_'+parentID;
  60. }
  61. data.name = list[0].type;
  62. data.optionList=[];
  63. }
  64. var nexParent = null;
  65. _.forEach(list,function (c) {
  66. var option={};
  67. option.name = c.name;
  68. option.value = c.ID;
  69. option.selected = c.selected;
  70. data.optionList.push(option);
  71. if(c.selected&&!c.isLeaf){
  72. nexParent = c.ID;
  73. }
  74. })
  75. options.push(data);
  76. if(nexParent!=null){
  77. this.getOptions(options,subRates,nexParent,itemID);
  78. }
  79. };
  80. FeeRate.prototype.getUpdateData=function(type,query,doc,callfunction){
  81. var updateData = [];
  82. var newobj = {
  83. 'updateType': type,
  84. 'query': query,
  85. }
  86. if(doc){
  87. newobj['doc']=doc;
  88. }
  89. if(callfunction){
  90. newobj['updateFunction']=callfunction;
  91. }
  92. updateData.push(newobj);
  93. return updateData;
  94. };
  95. FeeRate.prototype.updateFeeRateByEdit = function(params,feerate){
  96. var query={
  97. ID:feerate.ID,
  98. projectID:feerate.projectID
  99. };
  100. var doc ={
  101. rateIndex:params.sourceIndex,
  102. rate:params.dataItem
  103. }
  104. this.updateFeeRate(query,doc);
  105. };
  106. FeeRate.prototype.batchUpdateFeeRate = function (items,feerate) {
  107. var query={
  108. ID:feerate.ID,
  109. projectID:project.ID()
  110. };
  111. this.updateFeeRate(query,items);
  112. };
  113. FeeRate.prototype.updateFeeRate=function (query,doc) {
  114. var updateData = this.getUpdateData('ut_update',query,doc,'update_rates');
  115. project.pushNow('updateFeeRate',[this.sourceType],updateData);
  116. };
  117. FeeRate.prototype.updateStatusBySelected = function (updateTasks) {
  118. var updateData = [];
  119. var newobj = {
  120. 'updateType': 'ut_update',
  121. 'tasks': updateTasks,
  122. 'updateFunction':'updateStatusBySelected'
  123. }
  124. updateData.push(newobj);
  125. project.pushNow('updateFeeRate',[this.sourceType],updateData);
  126. }
  127. FeeRate.prototype.getRate = function (fileID, rateID){
  128. return 1.25;
  129. }
  130. var feeRate = new FeeRate(project);
  131. return feeRate;
  132. }
  133. };