salaryBagChangeEdit_UAT.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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;
  124. var personId;
  125. if (_self.getOperateState().toUpperCase() == 'VIEW') {
  126. cmpItemId = $("#cmpItem").val();
  127. personId = $("#person").val();
  128. }else {
  129. cmpItemId = $("#cmpItem_el").val();
  130. personId = $("#person_el").val();
  131. }
  132. if(startDate && endDate && endDate < startDate){
  133. shr.showInfo({message: "The expiration date cannot be later than the effective date"});
  134. return false;
  135. }
  136. var obj = $("#entrys").jqGrid("getRowData");
  137. var money = $("#money").val();
  138. var entriesMonty = 0;
  139. for(var i = 0 ; i < obj.length ; i++){
  140. entriesMonty = entriesMonty + obj[i].moneys;
  141. }
  142. var resultFlag = true;
  143. self.remoteCall({
  144. method : 'checkDate',
  145. async : false,
  146. param : {
  147. "startDate" : startDate+"-01",
  148. "endDate" : endDate+"-01",
  149. "fid" : fid,
  150. "sourceBillId" : sourceBillId,
  151. "cmpitemId" : cmpItemId,
  152. "personId" : personId
  153. },
  154. success:function(data){
  155. resultFlag = data;
  156. }
  157. });
  158. if( !resultFlag){
  159. shr.showInfo({message: "Employee salary package period overlaps"});
  160. return false;
  161. }
  162. return true;
  163. },
  164. submitEffectAction : function (event) {
  165. var _self = this,
  166. workArea = _self.getWorkarea(),
  167. $form = $('form', workArea);
  168. if ($form.valid() && _self.verify()) {
  169. shr.showConfirm('您确认要提交生效吗?', function() {
  170. _self.prepareSubmitEffect(event, 'submitEffect');
  171. });
  172. }
  173. },
  174. prepareSubmitEffect : function (event, action){
  175. var _self = this;
  176. var data = _self.assembleSaveData(action);
  177. var target;
  178. if (event && event.currentTarget) {
  179. target = event.currentTarget;
  180. }
  181. shr.doAction({
  182. target: target,
  183. url: _self.dynamicPage_url,
  184. type: 'post',
  185. data: data,
  186. success : function(response) {
  187. _self.goNextPage(target);
  188. }
  189. });
  190. },
  191. });