作者 何书鹏
1 个管道 的构建 通过 耗费 8 秒

工厂工时补贴

@@ -60,7 +60,7 @@ class Factory extends Backend @@ -60,7 +60,7 @@ class Factory extends Backend
60 ->paginate($limit); 60 ->paginate($limit);
61 61
62 foreach ($list as $row) { 62 foreach ($list as $row) {
63 - $row->visible(['id','factory_name','factory_shortname','factory_price','borrow_money','weigh']); 63 + $row->visible(['id','factory_name','factory_shortname','factory_price','borrow_money','work_subsidy','weigh']);
64 64
65 } 65 }
66 66
@@ -6,6 +6,7 @@ return [ @@ -6,6 +6,7 @@ return [
6 'Factory_shortname' => '工厂简称', 6 'Factory_shortname' => '工厂简称',
7 'Factory_price' => '工厂工价(元/时)', 7 'Factory_price' => '工厂工价(元/时)',
8 'Borrow_money' => '可借支金额', 8 'Borrow_money' => '可借支金额',
  9 + 'Work_subsidy' => '工时补贴价格(元/时)',
9 'Createtime' => '创建时间', 10 'Createtime' => '创建时间',
10 'Updatetime' => '更新时间', 11 'Updatetime' => '更新时间',
11 'Weigh' => '权重' 12 'Weigh' => '权重'
@@ -25,6 +25,12 @@ @@ -25,6 +25,12 @@
25 </div> 25 </div>
26 </div> 26 </div>
27 <div class="form-group"> 27 <div class="form-group">
  28 + <label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label>
  29 + <div class="col-xs-12 col-sm-8">
  30 + <input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="0.00">
  31 + </div>
  32 + </div>
  33 + <div class="form-group">
28 <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label> 34 <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
29 <div class="col-xs-12 col-sm-8"> 35 <div class="col-xs-12 col-sm-8">
30 <input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="0"> 36 <input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="0">
@@ -25,6 +25,12 @@ @@ -25,6 +25,12 @@
25 </div> 25 </div>
26 </div> 26 </div>
27 <div class="form-group"> 27 <div class="form-group">
  28 + <label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label>
  29 + <div class="col-xs-12 col-sm-8">
  30 + <input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="{$row.work_subsidy|htmlentities}">
  31 + </div>
  32 + </div>
  33 + <div class="form-group">
28 <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label> 34 <label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
29 <div class="col-xs-12 col-sm-8"> 35 <div class="col-xs-12 col-sm-8">
30 <input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}"> 36 <input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}">
@@ -57,12 +57,12 @@ @@ -57,12 +57,12 @@
57 {:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('拉黑')], $row['status'])} 57 {:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('拉黑')], $row['status'])}
58 </div> 58 </div>
59 </div> 59 </div>
60 - <div class="form-group"> 60 + <!--<div class="form-group">
61 <label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label> 61 <label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label>
62 <div class="col-xs-12 col-sm-8"> 62 <div class="col-xs-12 col-sm-8">
63 <input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="{$row.work_subsidy|htmlentities}"> 63 <input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="{$row.work_subsidy|htmlentities}">
64 </div> 64 </div>
65 - </div> 65 + </div>-->
66 <div class="form-group"> 66 <div class="form-group">
67 <label for="c-recruit_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Recruit_subsidy')}:</label> 67 <label for="c-recruit_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Recruit_subsidy')}:</label>
68 <div class="col-xs-12 col-sm-8"> 68 <div class="col-xs-12 col-sm-8">
@@ -126,7 +126,7 @@ class User extends Api @@ -126,7 +126,7 @@ class User extends Api
126 $data = [ 126 $data = [
127 'work_hours_month' => $user['work_hours_month'], 127 'work_hours_month' => $user['work_hours_month'],
128 'work_salary_month' => $user['work_salary_month'], 128 'work_salary_month' => $user['work_salary_month'],
129 - 'work_subsidy' => $user['work_subsidy'], 129 + 'work_subsidy' => ($user['is_work'] == '1' && $user['factory']) ? $user['factory']['work_subsidy'] : 0,
130 'work_subsidy_month' => $user['work_subsidy_month'], 130 'work_subsidy_month' => $user['work_subsidy_month'],
131 'lower_work_hours_month' => $lower_work_hours_month, 131 'lower_work_hours_month' => $lower_work_hours_month,
132 'recruit_subsidy_month' => $user['recruit_subsidy_month'], 132 'recruit_subsidy_month' => $user['recruit_subsidy_month'],
@@ -964,15 +964,9 @@ class User extends Api @@ -964,15 +964,9 @@ class User extends Api
964 ->where('work_type','in','1,2') 964 ->where('work_type','in','1,2')
965 ->whereTime('work_date','month') 965 ->whereTime('work_date','month')
966 ->sum('work_salary'); 966 ->sum('work_salary');
967 - // 这个月的工时补贴和招聘补贴 967 + // 记录入职打卡工厂
968 if($user['is_work'] == '1' && !empty($user['factory'])){ 968 if($user['is_work'] == '1' && !empty($user['factory'])){
969 - // 本月工时补贴增加  
970 - $update_data['work_subsidy_month'] = $user['work_subsidy_month'] + round($user['work_subsidy'] * $post['work_hours'],2);  
971 - // 给上级返招聘补贴  
972 - $parent = $this->model->get($user['pid']);  
973 - if($parent){  
974 - $parent->setInc('recruit_subsidy_month',round($user['recruit_subsidy']*$post['work_hours'],2));  
975 - } 969 + $log->isUpdate(true)->save(['factory_id'=>$user['factory']['id']]);
976 } 970 }
977 // 本月打卡次数 971 // 本月打卡次数
978 $update_data['log_days_month'] = UserWorkLog::where('user_id',$user['id']) 972 $update_data['log_days_month'] = UserWorkLog::where('user_id',$user['id'])
@@ -1003,18 +997,27 @@ class User extends Api @@ -1003,18 +997,27 @@ class User extends Api
1003 */ 997 */
1004 private function salaryCalculate($log,$user){ 998 private function salaryCalculate($log,$user){
1005 /*记录该月工时补贴和招聘补贴*/ 999 /*记录该月工时补贴和招聘补贴*/
1006 - if($user['is_work'] == '1' && !empty($user['factory'])){ 1000 + if($log['factory_id']){
1007 // 工时补贴 1001 // 工时补贴
1008 - UserWorkSubsidyLog::create([ 1002 + $find1 = UserWorkSubsidyLog::get(['user_work_log_id'=>$log['id']]);
  1003 + if(!$find1){
  1004 + $find1 = new UserWorkSubsidyLog;
  1005 + }
  1006 + $work_subsidy = $log['factory'] ? $log['factory']['work_subsidy'] : 1;
  1007 + $find1->save([
1009 'user_id' => $user['id'], 1008 'user_id' => $user['id'],
1010 - 'work_subsidy' => round($user['work_subsidy'] * $log['work_hours'],2), 1009 + 'work_subsidy' => round($work_subsidy * $log['work_hours'],2),
1011 'work_date' => $log['work_date'], 1010 'work_date' => $log['work_date'],
1012 'user_work_log_id' => $log['id'], 1011 'user_work_log_id' => $log['id'],
1013 ]); 1012 ]);
1014 // 招聘补贴 1013 // 招聘补贴
1015 $parent = $this->model->get($user['pid']); 1014 $parent = $this->model->get($user['pid']);
1016 if($parent){ 1015 if($parent){
1017 - UserRecruitSubsidyLog::create([ 1016 + $find2 = UserRecruitSubsidyLog::get(['user_work_log_id'=>$log['id']]);
  1017 + if(!$find2){
  1018 + $find2 = new UserRecruitSubsidyLog;
  1019 + }
  1020 + $find2->save([
1018 'user_id' => $user['pid'], 1021 'user_id' => $user['pid'],
1019 'recruit_subsidy' => round($user['recruit_subsidy'] * $log['work_hours'],2), 1022 'recruit_subsidy' => round($user['recruit_subsidy'] * $log['work_hours'],2),
1020 'work_date' => $log['work_date'], 1023 'work_date' => $log['work_date'],
@@ -1048,6 +1051,18 @@ class User extends Api @@ -1048,6 +1051,18 @@ class User extends Api
1048 'salary' => round($work_salary_total + $work_subsidy_total + $recruit_subsidy_total,2), 1051 'salary' => round($work_salary_total + $work_subsidy_total + $recruit_subsidy_total,2),
1049 'year_month' => $year_month, 1052 'year_month' => $year_month,
1050 ]); 1053 ]);
  1054 + // 本月的工时补贴和招聘补贴
  1055 + if($user['is_work'] == '1' && !empty($user['factory']) && $year_month == date('Y-m')){
  1056 + // 本月工时补贴统计
  1057 + $user->isUpdate(true)->save(['work_subsidy_month'=>$work_subsidy_total]);
  1058 + // 给上级返招聘补贴
  1059 + $parent = $this->model->get($user['pid']);
  1060 + if($parent){
  1061 + $parent->save(['recruit_subsidy_month'=>UserRecruitSubsidyLog::where('user_id',$user['pid'])
  1062 + ->where("work_date >= {$month_start} and work_date < {$month_end}")
  1063 + ->sum('recruit_subsidy')]);
  1064 + }
  1065 + }
1051 return true; 1066 return true;
1052 } 1067 }
1053 1068
@@ -12,4 +12,9 @@ class UserWorkLog extends Model @@ -12,4 +12,9 @@ class UserWorkLog extends Model
12 // 定义时间戳字段名 12 // 定义时间戳字段名
13 protected $createTime = 'createtime'; 13 protected $createTime = 'createtime';
14 protected $updateTime = 'updatetime'; 14 protected $updateTime = 'updatetime';
  15 +
  16 + // 入职打卡工厂
  17 + public function factory(){
  18 + return $this->belongsTo('Factory')->field('id,factory_shortname');
  19 + }
15 } 20 }
@@ -30,6 +30,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin @@ -30,6 +30,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
30 {field: 'factory_shortname', title: __('Factory_shortname'), operate: 'LIKE'}, 30 {field: 'factory_shortname', title: __('Factory_shortname'), operate: 'LIKE'},
31 {field: 'factory_price', title: __('Factory_price'), operate:'BETWEEN'}, 31 {field: 'factory_price', title: __('Factory_price'), operate:'BETWEEN'},
32 {field: 'borrow_money', title: __('Borrow_money'), operate:'BETWEEN'}, 32 {field: 'borrow_money', title: __('Borrow_money'), operate:'BETWEEN'},
  33 + {field: 'work_subsidy', title: __('Work_subsidy'), operate: false},
33 {field: 'weigh', title: __('Weigh'), operate: false}, 34 {field: 'weigh', title: __('Weigh'), operate: false},
34 //操作栏,默认有编辑、删除或排序按钮,可自定义配置buttons来扩展按钮 35 //操作栏,默认有编辑、删除或排序按钮,可自定义配置buttons来扩展按钮
35 { 36 {
@@ -51,7 +51,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin @@ -51,7 +51,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
51 {field: 'log_days_month', title: __('本月打卡天数'), operate: false}, 51 {field: 'log_days_month', title: __('本月打卡天数'), operate: false},
52 {field: 'work_hours_month', title: __('本月打卡工时'), operate: false}, 52 {field: 'work_hours_month', title: __('本月打卡工时'), operate: false},
53 {field: 'is_complete', title: __('Is_complete'), formatter: Table.api.formatter.status, searchList: {0: __('否'), 1: __('是')}}, 53 {field: 'is_complete', title: __('Is_complete'), formatter: Table.api.formatter.status, searchList: {0: __('否'), 1: __('是')}},
54 - {field: 'work_subsidy', title: __('Work_subsidy'), operate: false}, 54 + // {field: 'work_subsidy', title: __('Work_subsidy'), operate: false},
55 {field: 'recruit_subsidy', title: __('Recruit_subsidy'), operate: false}, 55 {field: 'recruit_subsidy', title: __('Recruit_subsidy'), operate: false},
56 {field: 'work_subsidy_month', title: __('Work_subsidy_month'), operate: false}, 56 {field: 'work_subsidy_month', title: __('Work_subsidy_month'), operate: false},
57 {field: 'recruit_subsidy_month', title: __('Recruit_subsidy_month'), operate: false}, 57 {field: 'recruit_subsidy_month', title: __('Recruit_subsidy_month'), operate: false},