AttendanceLeaveTerminate.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace app\common\model;
  3. use app\hander\HelpHander;
  4. use think\Db;
  5. use think\Model;
  6. class AttendanceLeaveTerminate extends Model
  7. {
  8. // 请假审批时生成请假记录
  9. public function advancedStartLeaveTerminate($id,$orgId,$userId,$formJson){
  10. $formJson = json_decode($formJson,true);
  11. $data = [
  12. 'org_id' => $orgId,
  13. 'user_id' => $userId,
  14. 'apply_id' => $id,
  15. 'create_time' => date('Y-m-d H:i:s'),
  16. 'status' => 0
  17. ];
  18. foreach ($formJson as $k=>$v){
  19. if($v['componentName'] == 'ddleaveterminatefield'){
  20. foreach ($v['components'] as $key=>$val){
  21. switch ($val['idx']){
  22. case '0':
  23. $data['parent_apply_id'] = $val['values2'][0]['id'];
  24. break;
  25. case '1':
  26. $data['days'] = $val['values'];
  27. break;
  28. }
  29. }
  30. break;
  31. }
  32. }
  33. $ret = Db::name('attendance_leave_terminate')->insert($data);
  34. return $ret?true:false;
  35. }
  36. public function advancedEndLeaveTerminate($id,$orgId,$userId,$formJson){
  37. $data = [
  38. 'update_time' => date('Y-m-d H:i:s'),
  39. 'status' => 1
  40. ];
  41. $info = Db::name('attendance_leave_terminate')->where('apply_id',$id)->find();
  42. $ret = Db::name('attendance_leave_terminate')->where('apply_id',$id)->update($data);
  43. if($ret){
  44. $res = Db::name('attendance_leave')->where('apply_id',$info['parent_apply_id'])->setDec('cur_days',$info['days']);
  45. if(!$res){
  46. return false;
  47. }
  48. }
  49. return $ret?true:false;
  50. }
  51. public function advancedDisagreeLeaveTerminate($id){
  52. $info = Db::name('attendance_leave_terminate')->where('apply_id',$id)->find();
  53. $data = [
  54. 'update_time' => date('Y-m-d H:i:s'),
  55. 'status' => 2
  56. ];
  57. $pinfo = Db::name('attendance_leave')->where('apply_id',$info['parent_apply_id'])->find();
  58. if($pinfo['leave_type'] == 3){ // 年假
  59. $ret = Db::name('user_info')->where('user_id',$pinfo['user_id'])->setInc('annual_leave',$info['days']);
  60. if(!$ret){
  61. return false;
  62. }
  63. }
  64. $ret = Db::name('attendance_leave_terminate')->where('apply_id',$id)->update($data);
  65. if($ret){
  66. $res = Db::name('attendance_leave')->where('apply_id',$info['parent_apply_id'])->setDec('cur_days',$info['days']);
  67. if(!$res){
  68. return false;
  69. }
  70. }
  71. return $ret?true:false;
  72. }
  73. }