salaryBagEdit.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. shr.defineClass('shr.salary.salaryBagEdit',shr.framework.Edit , {
  2. initalizeDOM: function () {
  3. var _self = this;
  4. shr.salary.salaryBagEdit.superClass.initalizeDOM.call(this);
  5. $("#addRow_entrys").hide();
  6. $("#deleteRow_entrys").hide();
  7. if(this.operateState.toUpperCase() != 'VIEW'){
  8. this.wageSplitting();
  9. }
  10. if(this.operateState.toUpperCase() == 'ADDNEW'){
  11. _self.getField("applyDate").shrDateTimePicker('setValue',new Date());
  12. $("#reissueDate").parents(".field-basis1").hide();
  13. $("#sourceBillId").parents(".field-basis1").hide();
  14. $("#entrys").setGridParam().hideCol("beforeAmount");
  15. $("#entrys").setGridParam().hideCol("reissueAmount");
  16. $("#entrys").setGridParam().hideCol("amountPayable");
  17. }
  18. },
  19. wageSplitting:function(){
  20. var self = this;
  21. self.getField('paycurrency').on("change", function(){
  22. self.defaultGriData();
  23. });
  24. self.getField('cmpItem').on("change", function(){
  25. self.defaultGriData();
  26. });
  27. self.getField('money').on("change", function(){
  28. self.defaultGriData();
  29. });
  30. self.getField('startDate').on("change", function(){
  31. if(self.checkDate()){
  32. self.defaultGriData();
  33. }
  34. });
  35. self.getField('endDate').on("change", function(){
  36. if(self.checkDate()){
  37. self.defaultGriData();
  38. }
  39. });
  40. },
  41. defaultGriData : function(){
  42. var self = this;
  43. var paycurrency = $("#paycurrency").val();
  44. var cmpItemId = this.getFieldValue("cmpItem");
  45. var cmpItemName = $("#cmpItem").val();
  46. var money = $("#money").val();
  47. var startDate = $("#startDate").val();
  48. var endDate = $("#endDate").val();
  49. if(paycurrency && cmpItemId && money && startDate && endDate){
  50. //清空表格数据
  51. self.getField("entrys").jqGrid("clearGridData");
  52. //1、获取月份明细
  53. var monthList = self.getMonthsBetween(startDate,endDate);
  54. money = Number(money);
  55. var avgMonty = Math.round( money / monthList.length).toFixed(2);
  56. //var remainder = money % monthList.length;
  57. var rowdata = {};
  58. //jdGrid列表初始化
  59. for(var i = 1; i <= monthList.length ; i++){
  60. var initialRow = i - 1;
  61. rowdata.months = monthList[initialRow];
  62. if( i == monthList.length ){
  63. //rowdata.moneys = avgMonty + remainder;
  64. // 总金额减去前面几个月的金额
  65. rowdata.moneys=(money-avgMonty*(monthList.length-1)).toFixed(2);
  66. }else{
  67. rowdata.moneys = avgMonty;
  68. }
  69. rowdata.paycurrency = paycurrency;
  70. rowdata.cmpItem = {"id" : cmpItemId , "name" : cmpItemName};
  71. //生成分录数据
  72. var row = self.getField("entrys").jqGrid("addRowData", initialRow, rowdata, "last");
  73. }
  74. }
  75. },
  76. getMonthsBetween : function(date1, date2) {
  77. var start = new Date(date1);
  78. var end = new Date(date2);
  79. var months = [];
  80. var currentDate = start;
  81. while (currentDate <= end) {
  82. months.push(new Date(currentDate));
  83. currentDate.setMonth(currentDate.getMonth() + 1);
  84. }
  85. return months;
  86. },
  87. checkDate :function(){
  88. var startDate = $("#startDate").val();
  89. var endDate = $("#endDate").val();
  90. if(startDate && endDate && endDate < startDate){
  91. shr.showInfo({message: "The expiration date cannot be later than the effective date"});
  92. return false;
  93. }
  94. return true;
  95. },
  96. /**
  97. * 对保存、提交的数据进行确认
  98. */
  99. verify: function() {
  100. var self = this;
  101. // shr.showInfo({message: message});
  102. var startDate = $("#startDate").val();
  103. var endDate = $("#endDate").val();
  104. var sourceBillId = $("#sourceBillId").val();
  105. var fid = $("#id").val();
  106. var cmpItemId = $("#cmpItem_el").val();
  107. var personId = $("#person_el").val();
  108. if(startDate && endDate && endDate < startDate){
  109. shr.showInfo({message: "The expiration date cannot be later than the effective date"});
  110. return false;
  111. }
  112. var resultFlag = true;
  113. self.remoteCall({
  114. method : 'checkDate',
  115. async : false,
  116. param : {
  117. "startDate" : startDate+"-01",
  118. "endDate" : endDate+"-01",
  119. "fid" : fid,
  120. "sourceBillId" : sourceBillId,
  121. "cmpitemId" : cmpItemId,
  122. "personId" : personId
  123. },
  124. success:function(data){
  125. resultFlag = data;
  126. }
  127. });
  128. if( !resultFlag){
  129. shr.showInfo({message: "Employee salary package period overlaps"});
  130. return false;
  131. }
  132. return true;
  133. },
  134. submitEffectAction : function (event) {
  135. var _self = this,
  136. workArea = _self.getWorkarea(),
  137. $form = $('form', workArea);
  138. if ($form.valid() && _self.verify()) {
  139. shr.showConfirm('您确认要提交生效吗?', function() {
  140. _self.prepareSubmitEffect(event, 'submitEffect');
  141. });
  142. }
  143. },
  144. prepareSubmitEffect : function (event, action){
  145. var _self = this;
  146. var data = _self.assembleSaveData(action);
  147. var target;
  148. if (event && event.currentTarget) {
  149. target = event.currentTarget;
  150. }
  151. shr.doAction({
  152. target: target,
  153. url: _self.dynamicPage_url,
  154. type: 'post',
  155. data: data,
  156. success : function(response) {
  157. _self.goNextPage(target);
  158. }
  159. });
  160. },
  161. });