installation_fee.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. /**
  2. * Created by zhang on 2018/1/31.
  3. */
  4. var installation_fee = {
  5. createNew: function (project) {
  6. // 用户定义private方法
  7. var tools = {};
  8. // 所有通过this访问的属性,都不应在此单元外部进行写入操作
  9. var installation_fee = function (proj) {
  10. // this.project = proj;
  11. this.datas = [];
  12. var sourceType = ModuleNames.installation_fee;
  13. this.getSourceType = function () {
  14. return sourceType;
  15. }
  16. proj.registerModule(ModuleNames.installation_fee, this);
  17. };
  18. // prototype用于定义public方法
  19. installation_fee.prototype.loadData = function (datas) {
  20. this.datas = datas;
  21. };
  22. installation_fee.prototype.getInstallationFeeByLibID=function(libID){
  23. return _.find(this.datas,{'libID':libID});
  24. };
  25. installation_fee.prototype.getFeeRuleByFeeItem = function (feeItem) {
  26. let installFee = projectObj.project.installation_fee.getInstallationFeeByLibID(feeItem.libID);
  27. let impacRules = _.filter(installFee.feeRule,{'feeItemId':feeItem.ID});
  28. return impacRules;
  29. };
  30. installation_fee.prototype.getFeeRuleBySection = function (section) {
  31. let installFee = projectObj.project.installation_fee.getInstallationFeeByLibID(section.libID);
  32. let impacRules = _.filter(installFee.feeRule,{'sectionId':section.ID});
  33. return impacRules;
  34. };
  35. installation_fee.prototype.getInstallSectionsByfeeItemID=function(libID,feeItemId){
  36. let installationFee = this.getInstallationFeeByLibID(libID);
  37. let installSections = _.filter(installationFee.installSection,{'feeItemId':feeItemId});
  38. return installSections;
  39. };
  40. installation_fee.prototype.getFeeItemByID = function(libID,ID){
  41. let installFee = projectObj.project.installation_fee.getInstallationFeeByLibID(libID);
  42. return _.find(installFee.installFeeItem,{'ID':ID});
  43. };
  44. installation_fee.prototype.getInstallSectionByID = function(libID,ID){
  45. let installFee = projectObj.project.installation_fee.getInstallationFeeByLibID(libID);
  46. return _.find(installFee.installSection,{'ID':ID});
  47. };
  48. installation_fee.prototype.getFeeRuleBySectionID=function(libID,sectionId){
  49. let installationFee = this.getInstallationFeeByLibID(libID);
  50. let feeRules = _.filter(installationFee.feeRule,{'sectionId':sectionId});
  51. return feeRules;
  52. };
  53. installation_fee.prototype.getFeeRuleByID = function (libID,feeRuleID) {
  54. let installationFee = this.getInstallationFeeByLibID(libID);
  55. return _.find(installationFee.feeRule,{'ID':feeRuleID});
  56. };
  57. installation_fee.prototype.updateFeeRule = function (doc,libID,feeRuleID,callback) {
  58. let me = this;
  59. let itemUpdateData = null;
  60. let feeItem=null;
  61. let ruleUpdateData=null;
  62. let updateData = [];
  63. let feeRule = me.getFeeRuleByID(libID,feeRuleID);
  64. if(feeRule){
  65. if(doc){//如果有需要更新的属性
  66. ruleUpdateData = me.getFeeRuleUpdateData(libID,feeRuleID,doc);
  67. updateData.push(ruleUpdateData);
  68. if(doc.hasOwnProperty("billID")){//改变了选取位置后如果与费用项里的位置不一致的话要清空费用项的选取位置
  69. feeItem = me.getFeeItemByID(libID,feeRule.feeItemId);
  70. let installationFee = me.getInstallationFeeByLibID(libID);
  71. if(feeItem.position!=''&&feeItem.billID!=doc.billID){
  72. itemUpdateData = me.getFeeItemUpdateData(feeItem,{position: "", billID:""},installationFee);
  73. updateData.push(itemUpdateData);
  74. }
  75. }
  76. $.bootstrapLoading.start();
  77. me.submitInstallationUpdate(updateData,function (data) {
  78. //更新缓存
  79. let isFeeItemUpdate = false;
  80. if(itemUpdateData){
  81. feeItem.position ="";
  82. feeItem.billID = "";
  83. isFeeItemUpdate= true;
  84. }
  85. for(let ukey in doc){
  86. feeRule[ukey]=doc[ukey];
  87. }
  88. if(callback){//回调
  89. callback(true);
  90. }
  91. $.bootstrapLoading.end();
  92. });
  93. }
  94. }else {
  95. if(callback){
  96. callback(false);
  97. }
  98. }
  99. };
  100. installation_fee.prototype.getFeeRuleUpdateData = function (libID,feeRuleID,doc) {
  101. let installationFee = this.getInstallationFeeByLibID(libID);
  102. let updateData = {
  103. ID:installationFee.ID,
  104. itemID:feeRuleID,
  105. type:"feeRule",
  106. doc:doc
  107. };
  108. return updateData;
  109. };
  110. installation_fee.prototype.getSectionUpdateData = function (libID,sectionID,doc) {
  111. let installationFee = this.getInstallationFeeByLibID(libID);
  112. let updateData = {
  113. ID:installationFee.ID,
  114. itemID:sectionID,
  115. type:"installSection",
  116. doc:doc
  117. };
  118. return updateData;
  119. };
  120. installation_fee.prototype.getFeeItemUpdateData = function (item,doc,installationFee) {
  121. let updateData = {
  122. ID:installationFee?installationFee.ID:item.installFeeID,
  123. itemID:item.ID,
  124. type:'installFeeItem',
  125. doc:doc
  126. };
  127. return updateData;
  128. };
  129. installation_fee.prototype.submitInstallationUpdate = function (updateData,callback) {
  130. if(updateData){
  131. CommonAjax.post('/installation/updateInstallationFee',{'projectID':projectInfoObj.projectInfo.ID,'updateData':updateData},function (data) {
  132. callback(data);
  133. })
  134. }
  135. }
  136. // 提交数据后返回数据处理
  137. installation_fee.prototype.doAfterUpdate = function(err, data){
  138. };
  139. return new installation_fee(project);
  140. }
  141. };