userWageDetailsList.jsp 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <link rel="stylesheet" type="text/css" href="css/commoncss.css"/>
  4. <t:base type="jquery,easyui,tools,DatePicker"></t:base>
  5. <div class="easyui-layout" fit="true">
  6. <div region="center" style="padding:0px;border:0px">
  7. <t:datagrid name="userWageList" pageSize="150" checkbox="false" fitColumns="false" title="员工月度工资明细" actionUrl="userWageController.do?datagrid" idField="id" fit="true" queryMode="group">
  8. <t:dgCol title="主键" field="id" hidden="true" queryMode="single" width="120"></t:dgCol>
  9. <t:dgCol title="员工id" hidden="true" field="userid" queryMode="single" width="120"></t:dgCol>
  10. <t:dgCol title="员工工号" sortable="false" frozenColumn="true" query="false" field="username" queryMode="single" width="80"></t:dgCol>
  11. <t:dgCol title="员工姓名" sortable="false" frozenColumn="true" query="false" field="realname" queryMode="single" width="80"></t:dgCol>
  12. <t:dgCol title="所属单位" sortable="false" frozenColumn="true" field="belongUnitName" queryMode="single" width="220"></t:dgCol>
  13. <%-- <t:dgCol title="职务层级" align="center" sortable="false" field="pduname" queryMode="single" width="120"></t:dgCol> --%>
  14. <t:dgCol title="身份证号" align="center" sortable="false" field="pduname" queryMode="single" width="160"></t:dgCol>
  15. <t:dgCol title="职务" sortable="false" field="duname" queryMode="single" width="120"></t:dgCol>
  16. <t:dgCol title="开户银行" sortable="false" field="belongBank" query="false" queryMode="single" width="80"></t:dgCol>
  17. <t:dgCol title="工资卡号" sortable="false" field="cardNumber" queryMode="single" width="170"></t:dgCol>
  18. <t:dgCol title="缴金单位" sortable="false" field="socialSecurityUnit" queryMode="single" width="120"></t:dgCol>
  19. <t:dgCol title="工资月度" align="center" sortable="false" field="monthly" queryMode="single" width="120"></t:dgCol>
  20. <t:dgCol title="基本工资" style="text-align:right," sortable="false" field="basicWage" queryMode="single" width="120"></t:dgCol>
  21. <t:dgCol title="职务津贴" style="text-align:right," sortable="false" field="dutiesAllowance" queryMode="single" width="120"></t:dgCol>
  22. <t:dgCol title="证书补贴" style="text-align:right," sortable="false" field="certificateSubsidy" queryMode="single" width="120"></t:dgCol>
  23. <t:dgCol title="交通补贴" style="text-align:right," sortable="false" field="trafficSubsidy" queryMode="single" width="120"></t:dgCol>
  24. <t:dgCol title="高温补贴" style="text-align:right," sortable="false" field="megathermalSubsidy" queryMode="single" width="120"></t:dgCol>
  25. <t:dgCol title="独生子女费" style="text-align:right," sortable="false" field="onlyChildCost" queryMode="single" width="120"></t:dgCol>
  26. <t:dgCol title="其他补贴" style="text-align:right," sortable="false" field="otherSubsidy" queryMode="single" width="120"></t:dgCol>
  27. <t:dgCol title="奖金" style="text-align:right," sortable="false" field="bonus" queryMode="single" width="120"></t:dgCol>
  28. <t:dgCol title="项目绩效" style="text-align:right," sortable="false" field="projectPerformance" queryMode="single" width="120"></t:dgCol>
  29. <t:dgCol title="餐补白班津贴" style="text-align:right," sortable="false" field="mealsSubsidyDay" queryMode="single" width="120"></t:dgCol>
  30. <t:dgCol title="餐补夜班津贴" style="text-align:right," sortable="false" field="mealsSubsidyNight" queryMode="single" width="120"></t:dgCol>
  31. <t:dgCol title="餐费补助" style="text-align:right," sortable="false" field="mealsSubsidy" queryMode="single" width="120"></t:dgCol>
  32. <t:dgCol title="加班超时费" style="text-align:right," sortable="false" field="overtimepayTimeout" queryMode="single" width="120"></t:dgCol>
  33. <t:dgCol title="国定加班费" style="text-align:right," sortable="false" field="overtimepayFixed" queryMode="single" width="120"></t:dgCol>
  34. <t:dgCol title="值班费" style="text-align:right," sortable="false" field="duty" queryMode="single" width="120"></t:dgCol>
  35. <t:dgCol title="特殊加班费" style="text-align:right," sortable="false" field="specialOvertime" queryMode="single" width="120"></t:dgCol>
  36. <t:dgCol title="病假扣" style="text-align:right," sortable="false" field="sickLeaveDebit" queryMode="single" width="120"></t:dgCol>
  37. <t:dgCol title="事假扣" style="text-align:right," sortable="false" field="thingLeaveDebit" queryMode="single" width="120"></t:dgCol>
  38. <t:dgCol title="缺勤扣" style="text-align:right," sortable="false" field="absenceDebit" queryMode="single" width="120"></t:dgCol>
  39. <t:dgCol title="代扣款" style="text-align:right," sortable="false" field="daikouDebit" queryMode="single" width="120"></t:dgCol>
  40. <t:dgCol title="其他扣除" style="text-align:right," sortable="false" field="otherDebit" queryMode="single" width="120"></t:dgCol>
  41. <t:dgCol title="缴金补贴" style="text-align:right," sortable="false" field="paymentSubsidy" queryMode="single" width="120"></t:dgCol>
  42. <t:dgCol title="补发调整" style="text-align:right," sortable="false" field="reissue" queryMode="single" width="120"></t:dgCol>
  43. <t:dgCol title="应发金额" style="text-align:right," sortable="false" field="preTaxMone" queryMode="single" width="120"></t:dgCol>
  44. <t:dgCol title="社保扣除" style="text-align:right," sortable="false" field="socialSecurityDebit" queryMode="single" width="120"></t:dgCol>
  45. <t:dgCol title="公积金扣除" style="text-align:right," sortable="false" field="providentFundDebit" queryMode="single" width="120"></t:dgCol>
  46. <t:dgCol title="扣税金额" style="text-align:right," sortable="false" field="taxMoney" queryMode="single" width="120"></t:dgCol>
  47. <t:dgCol title="实发金额" style="text-align:right," sortable="false" field="actualMoney" queryMode="single" width="120"></t:dgCol>
  48. <t:dgCol title="企业社保" style="text-align:right," sortable="false" field="comSocialSecurityDebit" queryMode="single" width="120"></t:dgCol>
  49. <t:dgCol title="企业公积金" style="text-align:right," sortable="false" field="comProvidentFundDebit" queryMode="single" width="120"></t:dgCol>
  50. <t:dgCol title="企业成本合计" style="text-align:right," sortable="false" field="comCost" queryMode="single" width="120"></t:dgCol>
  51. <t:dgCol title="备注说明" sortable="false" field="remark" extendParams="editor:'text'" queryMode="single" width="400"></t:dgCol>
  52. <t:dgToolBar title="核算" icon="icon-calculation" url="userPayrollController.do?userPayroll" funname="userPayroll"></t:dgToolBar>
  53. <%-- <t:dgToolBar title="修改" icon="icon-edit" operationCode="edit" funname="editRow"></t:dgToolBar> --%>
  54. <%-- <t:dgToolBar title="保存" icon="icon-save" url="userWageController.do?saveRows" funname="saveData"></t:dgToolBar> --%>
  55. <%-- <t:dgToolBar title="取消编辑" icon="icon-cancel1" funname="reject"></t:dgToolBar> --%>
  56. <%-- <t:dgToolBar title="确认" url="userWageController.do?updateStatus" icon="icon-confirm" funname="updateStatus"></t:dgToolBar> --%>
  57. <t:dgToolBar title="导出" icon="icon-put" operationCode="put" funname="ExportXls"></t:dgToolBar>
  58. </t:datagrid>
  59. <script>
  60. $(function() {
  61. var datagrid = $("#userWageListtb");
  62. datagrid.children("div:first").before($("#pinjie1 div[name='pinjie11']").html());
  63. // datagrid.children("div:first").after($("#pinjie2 div[name='pinjie21']").html());
  64. // datagrid.children(".datagrid-toolbar").children("span:first").after($("#pinjie2 div[name='pinjie21']").html());
  65. // datagrid.append($("#pinjie2 div[name='pinjie21']").html());
  66. $("#pinjie12").next("div").attr("style","border-bottom-width:0;height:auto;");
  67. $("#pinjie12").next("div").attr("class","datagrid-toolbar");
  68. datagrid.children(".datagrid-toolbar").children("span:first").after($("#pinjie2 div[name='pinjie21']").html());
  69. $("#pinjie1").html('');
  70. $("#pinjie2").html('');
  71. isCss();
  72. });
  73. function isCss(){
  74. $("td[field='preTaxMone']").css({"background":"#d65653"});
  75. $("td[field='preTaxMone']").css({"color":"#ffffff"});
  76. $("td[field='actualMoney']").css({"background":"#d65653"});
  77. $("td[field='actualMoney']").css({"color":"#ffffff"});
  78. $("td[field='comCost']").css({"background":"#d65653"});
  79. $("td[field='comCost']").css({"color":"#ffffff"});
  80. }
  81. </script>
  82. <div id="pinjie1" style="display: none;">
  83. <div name="pinjie11">
  84. <div id="pinjie12" style="margin:23px 0 18px 0;" >
  85. <table style="padding:0px;width: 100%;" cellpadding="0" cellspacing="1" border='0'>
  86. <tbody >
  87. <tr>
  88. <td align="right" style="width: 74px;">
  89. <label class="Validform_label">
  90. 员工姓名:
  91. </label>
  92. </td>
  93. <td class="value" style="width: 74px;">
  94. <input id="realname" name="realname" type="text" style="width: 120px; " class="inputxt" placeholder="">
  95. </td>
  96. <td align="right" style="width: 74px;">
  97. <label class="Validform_label">
  98. 开户银行:
  99. </label>
  100. </td>
  101. <td class="value" style="width: 74px;">
  102. <input id="belongBank" name="belongBank" type="text" style="width: 120px; " class="inputxt" placeholder="">
  103. </td>
  104. <td align="right" style="width: 74px;">
  105. <label class="Validform_label">
  106. <span color="red" class="requiredIcon">*</span>
  107. 工资月度:
  108. </label>
  109. </td>
  110. <td class="value" style="width: 74px;">
  111. <input class="Wdate" name="monthlys" style="width: 120px;height: 28px; border-radius: 3px;" onClick="WdatePicker({readOnly:true,enableKeyboard:false,enableInputMask:false,dateFmt: 'yyyy-MM'})"/>
  112. </td>
  113. <td align="right" style="width: 74px;">
  114. <label class="Validform_label">
  115. 项目名称:
  116. </label>
  117. </td>
  118. <td class="value" >
  119. <input readonly="true" type="text" id="departname" name="departname" style="width: 120px" placeholder="" onclick="openDepartmentSelect()">
  120. <input id="orgIds" name="orgIds" type="hidden" value="">
  121. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-select" id="departSearch" onclick="openDepartmentSelect()">选择</a>
  122. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-clean" id="departRedo" onclick="callbackClean()">清空</a>
  123. </td>
  124. </tr>
  125. <!-- <tr>
  126. <td colspan="10"></td>
  127. <td >
  128. <span>
  129. <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-reload " id="personnelBaseArchivesManageRedo" onclick="searchReset('userWageList')">重置</a>
  130. </span>
  131. <span>
  132. <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-search" id="personnelBaseArchivesManageSearch" onclick="userWageListsearch()">查询</a>
  133. </span>
  134. </td>
  135. </tr> -->
  136. </tbody>
  137. </table>
  138. </div>
  139. </div>
  140. </div>
  141. <div id="pinjie2" style="display: none;">
  142. <div name="pinjie21">
  143. <span style="float:right;margin-bottom:4px;">
  144. <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-reload " id="personnelBaseArchivesManageRedo" onclick="searchReset('userWageList')">重置</a>&nbsp;&nbsp;&nbsp;
  145. <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-search" id="personnelBaseArchivesManageSearch" onclick="userWageListsearch()">查询</a>
  146. </span>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. <script src = "webpage/cn/com/lzt/userwage/userWageList.js"></script>
  152. <script type="text/javascript">
  153. //核算
  154. function userPayroll(title,addurl,gname){
  155. var rows=$('#'+gname).datagrid("getChecked");
  156. var date = $(".Wdate").val();
  157. var pid = $("#orgIds").val();
  158. var monthly = $("#monthlys").val();
  159. var realname = $("#realname").val();
  160. var belongBank = $("#belongBank").val();
  161. if(rows.length==0){
  162. layer.alert("请选择需要重新核算工资的员工!");
  163. //tip("请选择需要重新核算工资的员工!");
  164. return;
  165. }
  166. var result = "";
  167. for(var i=0;i<rows.length;i++){
  168. if(rows[i].status == '2'){
  169. layer.alert("员工【"+rows[i].realname+"】的工资已确认,不可再点击核算");
  170. //tip("员工【"+rows[i].realname+"】的工资已确认,不可再点击核算");
  171. return;
  172. }
  173. if(rows[i].duname == ''){
  174. layer.alert("员工【"+rows[i].realname+"】没有职务,请先设定职务");
  175. //tip("员工【"+rows[i].realname+"】的工资已确认,不可再点击核算");
  176. return;
  177. }
  178. result += rows[i].userid+",";
  179. }
  180. $.ajax({
  181. url:"<%=basePath%>/"+addurl,
  182. type:"post",
  183. data:{ids:result,status:true,moth:date},
  184. dataType:"json",
  185. success:function(data){
  186. tip(data.msg);
  187. userWageListsearch();
  188. //layer.alert(data.msg);
  189. //tip(data.msg);
  190. }
  191. });
  192. }
  193. //手动核算员工选择
  194. function userPayrollBySelectUser(){
  195. //项目id
  196. var pid = $("#orgIds").val();
  197. var monthly = $("#monthlys").val();
  198. // var date = new Date();
  199. // var day = date.getDate();
  200. // if(day> 1 && day <6){
  201. // layer.alert("每月2日~5日为考勤和工资核算期, 不能手工核算工资");
  202. // return false;
  203. // }
  204. $.dialog({content: 'url:userPayrollController.do?personnelBaseArchivesManageSelectList&pid='+pid, zIndex: getzIndex(), title: '员工选择', lock: true, width: '650px', height: '400px',
  205. opacity: 0.4, button: [
  206. {name: '<t:mutiLang langKey="common.confirm"/>', callback: function (){
  207. //var postGeneralId=$("#id").val();
  208. //父页面接子页面传值
  209. //获得子页面getReason()方法中的值
  210. var iframe = this.iframe.contentWindow;
  211. var userid="";
  212. if(iframe.getReason().length>0){
  213. var strData=eval(iframe.getReason());
  214. for(var key in strData[0]){
  215. if(key=="strUserId"){
  216. userid = strData[0][key];
  217. }
  218. }
  219. $.ajax({
  220. url:"userPayrollController.do?userPayrollByUserId",
  221. async:true,
  222. type:"post",
  223. data: {
  224. userid : userid,
  225. pid : pid,
  226. monthly : monthly
  227. },
  228. cache : false,
  229. success:function(aj){
  230. data=JSON.parse(aj);
  231. if (data.success) {
  232. // layer.alert("手动核算完成");
  233. var refreshURL= 'userWageController.do?goview&orgid='+pid+'&monthly='+'${monthly}';
  234. layer.msg('手动核算完成', {
  235. time: 2000, //2s后自动关闭
  236. btn: ['确定']
  237. ,yes: function(index, layero){
  238. window.location.href=refreshURL;
  239. }
  240. });
  241. //刷新表格数据
  242. //refresh();
  243. window.location.href=refreshURL;
  244. } else {
  245. layer.alert(data.msg);
  246. }
  247. }
  248. });
  249. }
  250. }, focus: true},
  251. {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  252. ]}).zindex();
  253. }
  254. //保存数据
  255. function saveData(title,addurl,gname){
  256. if(!endEdit(gname))
  257. return false;
  258. var rows=$('#'+gname).datagrid("getChanges","inserted");
  259. var uprows=$('#'+gname).datagrid("getChanges","updated");
  260. rows=rows.concat(uprows);
  261. if(rows.length<=0){
  262. layer.alert("没有需要保存的数据!");
  263. //tip("没有需要保存的数据!");
  264. return false;
  265. }
  266. var result={};
  267. for(var i=0;i<rows.length;i++){
  268. for(var d in rows[i]){
  269. result["userWageList["+i+"]."+d]=rows[i][d];
  270. }
  271. }
  272. $.ajax({
  273. url:"<%=basePath%>/"+addurl,
  274. type:"post",
  275. data:result,
  276. dataType:"json",
  277. success:function(data){
  278. tip(data.msg);
  279. reloadTable();
  280. }
  281. })
  282. }
  283. //结束编辑
  284. function endEdit(gname){
  285. var editIndex = $('#'+gname).datagrid('getRows').length-1;
  286. for(var i=0;i<=editIndex;i++){
  287. if($('#'+gname).datagrid('validateRow', i))
  288. $('#'+gname).datagrid('endEdit', i);
  289. else
  290. return false;
  291. }
  292. return true;
  293. }
  294. //编辑行
  295. function editRow(title,addurl,gname){
  296. var rows=$('#'+gname).datagrid("getChecked");
  297. if(rows.length==0){
  298. layer.alert("请选择条目");
  299. //tip("请选择条目");
  300. return false;
  301. }
  302. for(var i=0;i<rows.length;i++){
  303. var index= $('#'+gname).datagrid('getRowIndex', rows[i]);
  304. $('#'+gname).datagrid('beginEdit', index);
  305. }
  306. }
  307. //update-begin--Author:张忠亮 Date:20150709 for:修正 取消编辑后再次点击录入不进入编辑状态
  308. //取消编辑
  309. function reject(title,addurl,gname){
  310. $('#'+gname).datagrid('clearChecked');
  311. $('#'+gname).datagrid('rejectChanges');
  312. }
  313. function returnGopage(){
  314. window.location.href="userWageController.do?listView";
  315. }
  316. //导入
  317. function ImportXls() {
  318. openuploadwin('Excel导入', 'userWageController.do?upload', "userWageList");
  319. }
  320. //导出
  321. function ExportXls() {
  322. JeecgExcelExport("userWageController.do?exportXls3","userWageList");
  323. }
  324. //模板下载
  325. function ExportXlsByT() {
  326. JeecgExcelExport("userWageController.do?exportXlsByT","userWageList");
  327. }
  328. //新增
  329. function add(title,url,id){
  330. window.location.href=url
  331. }
  332. //修改
  333. function update(title,url, id){
  334. updateNotCreateWin("修改",url, "userWageList",false);
  335. }
  336. //查看
  337. function view(title,url, id){
  338. viewNotCreateWin("查看",url, "userWageList",false)
  339. }
  340. //选择项目名称,列表================
  341. function openDepartmentSelect() {
  342. //$.dialog.setting.zIndex = getzIndex();
  343. var orgIds = $("#belongUnitid").val();
  344. $.dialog({
  345. content: 'url:userWageController.do?projectDepartTableAll&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  346. {name: '<t:mutiLang langKey="common.confirm"/>', callback: function (){
  347. var iframe = this.iframe.contentWindow;
  348. if(iframe.getReason().length>0){
  349. var strData=eval(iframe.getReason());
  350. for(var key in strData[0]){
  351. if(key=="strPId"){
  352. $("#orgIds").val(strData[0][key]);
  353. }else if(key=="strDepartName"){
  354. $("#departname").val(strData[0][key]);
  355. }
  356. }
  357. }
  358. }, focus: true},
  359. {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  360. ]}).zindex();
  361. }
  362. function callbackClean(){
  363. $('#departname').val('');
  364. $('#orgIds').val('');
  365. }
  366. function userWageListsearch() {
  367. try {
  368. if (!$("#userWageListForm").Validform({
  369. tiptype : 3
  370. }).check()) {
  371. return false;
  372. }
  373. } catch (e) {
  374. }
  375. if (true) {
  376. var queryParams = $('#userWageList').datagrid('options').queryParams;
  377. $('#userWageListtb').find('*').each(function() {
  378. queryParams[$(this).attr('name')] = $(this).val();
  379. });
  380. if(queryParams.monthlys ==null||queryParams.monthlys ==''){
  381. layer.alert('请选择工资月度');
  382. return false;
  383. }
  384. var orgIds = $("#belongUnitid").val();
  385. // if(orgIds ==null||orgIds ==''){
  386. // layer.alert('请选择项目');
  387. // return false;
  388. // }
  389. $('#userWageList')
  390. .datagrid(
  391. {
  392. url : 'userWageController.do?datagrid&field=id,userid,username,realname,belongUnitName,pduname,duname,belongBank,socialSecurityUnit,cardNumber,monthly,basicWage,dutiesAllowance,certificateSubsidy,trafficSubsidy,megathermalSubsidy,onlyChildCost,otherSubsidy,bonus,projectPerformance,mealsSubsidyDay,mealsSubsidyNight,mealsSubsidy,overtimepayTimeout,overtimepayFixed,duty,specialOvertime,sickLeaveDebit,thingLeaveDebit,absenceDebit,paymentSubsidy,socialSecurityDebit,providentFundDebit,comSocialSecurityDebit,comProvidentFundDebit,comCost,daikouDebit,otherDebit,reissue,preTaxMone,taxMoney,actualMoney,remark,',
  393. pageNumber : 1
  394. });
  395. }
  396. }
  397. </script>