salaryBagChangeEdit.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. shr.defineClass('shr.salary.salaryBagChangeEdit',shr.framework.Edit , {
  2. initalizeDOM: function () {
  3. var _self = this;
  4. shr.salary.salaryBagChangeEdit.superClass.initalizeDOM.call(this);
  5. $("#addRow_entrys").hide();
  6. $("#deleteRow_entrys").hide();
  7. if(this.operateState.toUpperCase() != 'VIEW'){
  8. this.wageSplitting();
  9. //页面初始化
  10. this.initBillData();
  11. _self.getField("applyDate").shrDateTimePicker('setValue',new Date());
  12. }
  13. if(this.operateState.toUpperCase() == 'ADDNEW'){
  14. $("#sourceBillId").parents(".field-basis1").hide();
  15. }
  16. },
  17. initBillData:function(){
  18. var self = this;
  19. var billId = $.getUrlParam("sourceBillId");
  20. if(billId != null && billId != "" ){
  21. self.remoteCall({
  22. method : 'getSoureBillData',
  23. async : false,
  24. param : {
  25. "billId" : billId
  26. },
  27. success:function(data){
  28. $("#hrOrgUnit").shrPromptBox("setValue",{id:'00000000-0000-0000-0000-000000000000CCE7AED4',name:'Guangdong Technion Israel Institute of Technology'});
  29. //员工
  30. $("#person").shrPromptBox("setValue", {id:data.personId,name:data.personName});
  31. //币种
  32. $('#paycurrency').shrSelect('setValue',data.paycurrency);
  33. //薪酬项目
  34. $("#cmpItem").shrPromptBox("setValue", {id:data.cmpItemId,name:data.cmpItemName});
  35. //生效时间
  36. $("#startDate").shrDateTimePicker("setValue", data.startDate);
  37. //失效时间
  38. $("#endDate").shrDateTimePicker("setValue", data.endDate);
  39. //金额
  40. $("#money").shrTextField("setValue", data.money);
  41. //原始单据ID
  42. $("#sourceBillId").shrTextField("setValue", billId);
  43. var monthList = data.entry;
  44. for(var i = 1; i <= monthList.length ; i++){
  45. var initialRow = i - 1;
  46. var rowdata = monthList[initialRow];
  47. rowdata.cmpItem = {"id" : rowdata.cmpItemId , "name" : rowdata.cmpItemName};
  48. //生成分录数据
  49. var row = self.getField("entrys").jqGrid("addRowData", initialRow, rowdata, "last");
  50. }
  51. }
  52. });
  53. }
  54. },
  55. wageSplitting:function(){
  56. var self = this;
  57. self.getField('endDate').on("change", function(){
  58. if(self.checkDate()){
  59. self.defaultGriData();
  60. }
  61. });
  62. self.getField('reissueDate').on("change", function(){
  63. if(self.checkDate()){
  64. self.defaultGriData();
  65. }
  66. });
  67. },
  68. defaultGriData : function(){
  69. var self = this;
  70. var money = $("#money").val();
  71. var startDate = $("#startDate").val();
  72. var endDate = $("#endDate").val();
  73. var reissueDate = $("#reissueDate").val();
  74. var billId = $("#sourceBillId").val();
  75. if(money && startDate && endDate && reissueDate && billId){
  76. //清空表格数据
  77. self.getField("entrys").jqGrid("clearGridData");
  78. self.remoteCall({
  79. method : 'createEntryDetail',
  80. async : false,
  81. param : {
  82. "startDate" : startDate+"-01",
  83. "endDate" : endDate+"-01",
  84. "reissueDate" : reissueDate+"-01",
  85. "money" : money,
  86. "billId" : billId
  87. },
  88. success:function(data){
  89. for(var i = 1; i <= data.length ; i++){
  90. var initialRow = i - 1;
  91. var rowdata = data[initialRow];
  92. rowdata.cmpItem = {"id" : rowdata.cmpItemId , "name" : rowdata.cmpItemName};
  93. //生成分录数据
  94. var row = self.getField("entrys").jqGrid("addRowData", initialRow, rowdata, "last");
  95. }
  96. }
  97. });
  98. }
  99. },
  100. checkDate :function(){
  101. var startDate = $("#startDate").val();
  102. var endDate = $("#endDate").val();
  103. var reissueDate = $("#reissueDate").val();
  104. if(startDate && endDate && endDate < startDate){
  105. shr.showInfo({message: "The expiration date cannot be later than the effective date !"});
  106. return false;
  107. }
  108. if(reissueDate && endDate && endDate < reissueDate){
  109. shr.showInfo({message: "The replacement date cannot be longer than the expiration date !"});
  110. }
  111. return true;
  112. },
  113. /**
  114. * 对保存、提交的数据进行确认
  115. */
  116. verify: function() {
  117. var self = this;
  118. // shr.showInfo({message: message});
  119. var startDate = $("#startDate").val();
  120. var endDate = $("#endDate").val();
  121. var sourceBillId = $("#sourceBillId").val();
  122. var fid = $("#id").val();
  123. var cmpItemId = $("#cmpItem_el").val();
  124. var personId = $("#person_el").val();
  125. if(startDate && endDate && endDate < startDate){
  126. shr.showInfo({message: "The expiration date cannot be later than the effective date"});
  127. return false;
  128. }
  129. var obj = $("#entrys").jqGrid("getRowData");
  130. var money = $("#money").val();
  131. var entriesMonty = 0;
  132. for(var i = 0 ; i < obj.length ; i++){
  133. entriesMonty = entriesMonty + obj[i].moneys;
  134. }
  135. var resultFlag = true;
  136. self.remoteCall({
  137. method : 'checkDate',
  138. async : false,
  139. param : {
  140. "startDate" : startDate+"-01",
  141. "endDate" : endDate+"-01",
  142. "fid" : fid,
  143. "sourceBillId" : sourceBillId,
  144. "cmpitemId" : cmpItemId,
  145. "personId" : personId
  146. },
  147. success:function(data){
  148. resultFlag = data;
  149. }
  150. });
  151. if( !resultFlag){
  152. shr.showInfo({message: "Employee salary package period overlaps"});
  153. return false;
  154. }
  155. return true;
  156. },
  157. submitEffectAction : function (event) {
  158. var _self = this,
  159. workArea = _self.getWorkarea(),
  160. $form = $('form', workArea);
  161. if ($form.valid() && _self.verify()) {
  162. shr.showConfirm('您确认要提交生效吗?', function() {
  163. _self.prepareSubmitEffect(event, 'submitEffect');
  164. });
  165. }
  166. },
  167. prepareSubmitEffect : function (event, action){
  168. var _self = this;
  169. var data = _self.assembleSaveData(action);
  170. var target;
  171. if (event && event.currentTarget) {
  172. target = event.currentTarget;
  173. }
  174. shr.doAction({
  175. target: target,
  176. url: _self.dynamicPage_url,
  177. type: 'post',
  178. data: data,
  179. success : function(response) {
  180. _self.goNextPage(target);
  181. }
  182. });
  183. },
  184. });