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

工厂工时补贴

... ... @@ -60,7 +60,7 @@ class Factory extends Backend
->paginate($limit);
foreach ($list as $row) {
$row->visible(['id','factory_name','factory_shortname','factory_price','borrow_money','weigh']);
$row->visible(['id','factory_name','factory_shortname','factory_price','borrow_money','work_subsidy','weigh']);
}
... ...
... ... @@ -6,6 +6,7 @@ return [
'Factory_shortname' => '工厂简称',
'Factory_price' => '工厂工价(元/时)',
'Borrow_money' => '可借支金额',
'Work_subsidy' => '工时补贴价格(元/时)',
'Createtime' => '创建时间',
'Updatetime' => '更新时间',
'Weigh' => '权重'
... ...
... ... @@ -25,6 +25,12 @@
</div>
</div>
<div class="form-group">
<label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="0.00">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="0">
... ...
... ... @@ -25,6 +25,12 @@
</div>
</div>
<div class="form-group">
<label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="{$row.work_subsidy|htmlentities}">
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-weigh" data-rule="required" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}">
... ...
... ... @@ -57,12 +57,12 @@
{:build_radios('row[status]', ['normal'=>__('Normal'), 'hidden'=>__('拉黑')], $row['status'])}
</div>
</div>
<div class="form-group">
<!--<div class="form-group">
<label for="c-work_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Work_subsidy')}:</label>
<div class="col-xs-12 col-sm-8">
<input id="c-work_subsidy" data-rule="requird" class="form-control" name="row[work_subsidy]" type="number" value="{$row.work_subsidy|htmlentities}">
</div>
</div>
</div>-->
<div class="form-group">
<label for="c-recruit_subsidy" class="control-label col-xs-12 col-sm-2">{:__('Recruit_subsidy')}:</label>
<div class="col-xs-12 col-sm-8">
... ...
... ... @@ -126,7 +126,7 @@ class User extends Api
$data = [
'work_hours_month' => $user['work_hours_month'],
'work_salary_month' => $user['work_salary_month'],
'work_subsidy' => $user['work_subsidy'],
'work_subsidy' => ($user['is_work'] == '1' && $user['factory']) ? $user['factory']['work_subsidy'] : 0,
'work_subsidy_month' => $user['work_subsidy_month'],
'lower_work_hours_month' => $lower_work_hours_month,
'recruit_subsidy_month' => $user['recruit_subsidy_month'],
... ... @@ -964,15 +964,9 @@ class User extends Api
->where('work_type','in','1,2')
->whereTime('work_date','month')
->sum('work_salary');
// 这个月的工时补贴和招聘补贴
// 记录入职打卡工厂
if($user['is_work'] == '1' && !empty($user['factory'])){
// 本月工时补贴增加
$update_data['work_subsidy_month'] = $user['work_subsidy_month'] + round($user['work_subsidy'] * $post['work_hours'],2);
// 给上级返招聘补贴
$parent = $this->model->get($user['pid']);
if($parent){
$parent->setInc('recruit_subsidy_month',round($user['recruit_subsidy']*$post['work_hours'],2));
}
$log->isUpdate(true)->save(['factory_id'=>$user['factory']['id']]);
}
// 本月打卡次数
$update_data['log_days_month'] = UserWorkLog::where('user_id',$user['id'])
... ... @@ -1003,18 +997,27 @@ class User extends Api
*/
private function salaryCalculate($log,$user){
/*记录该月工时补贴和招聘补贴*/
if($user['is_work'] == '1' && !empty($user['factory'])){
if($log['factory_id']){
// 工时补贴
UserWorkSubsidyLog::create([
$find1 = UserWorkSubsidyLog::get(['user_work_log_id'=>$log['id']]);
if(!$find1){
$find1 = new UserWorkSubsidyLog;
}
$work_subsidy = $log['factory'] ? $log['factory']['work_subsidy'] : 1;
$find1->save([
'user_id' => $user['id'],
'work_subsidy' => round($user['work_subsidy'] * $log['work_hours'],2),
'work_subsidy' => round($work_subsidy * $log['work_hours'],2),
'work_date' => $log['work_date'],
'user_work_log_id' => $log['id'],
]);
// 招聘补贴
$parent = $this->model->get($user['pid']);
if($parent){
UserRecruitSubsidyLog::create([
$find2 = UserRecruitSubsidyLog::get(['user_work_log_id'=>$log['id']]);
if(!$find2){
$find2 = new UserRecruitSubsidyLog;
}
$find2->save([
'user_id' => $user['pid'],
'recruit_subsidy' => round($user['recruit_subsidy'] * $log['work_hours'],2),
'work_date' => $log['work_date'],
... ... @@ -1048,6 +1051,18 @@ class User extends Api
'salary' => round($work_salary_total + $work_subsidy_total + $recruit_subsidy_total,2),
'year_month' => $year_month,
]);
// 本月的工时补贴和招聘补贴
if($user['is_work'] == '1' && !empty($user['factory']) && $year_month == date('Y-m')){
// 本月工时补贴统计
$user->isUpdate(true)->save(['work_subsidy_month'=>$work_subsidy_total]);
// 给上级返招聘补贴
$parent = $this->model->get($user['pid']);
if($parent){
$parent->save(['recruit_subsidy_month'=>UserRecruitSubsidyLog::where('user_id',$user['pid'])
->where("work_date >= {$month_start} and work_date < {$month_end}")
->sum('recruit_subsidy')]);
}
}
return true;
}
... ...
... ... @@ -12,4 +12,9 @@ class UserWorkLog extends Model
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
// 入职打卡工厂
public function factory(){
return $this->belongsTo('Factory')->field('id,factory_shortname');
}
}
... ...
... ... @@ -30,6 +30,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'factory_shortname', title: __('Factory_shortname'), operate: 'LIKE'},
{field: 'factory_price', title: __('Factory_price'), operate:'BETWEEN'},
{field: 'borrow_money', title: __('Borrow_money'), operate:'BETWEEN'},
{field: 'work_subsidy', title: __('Work_subsidy'), operate: false},
{field: 'weigh', title: __('Weigh'), operate: false},
//操作栏,默认有编辑、删除或排序按钮,可自定义配置buttons来扩展按钮
{
... ...
... ... @@ -51,7 +51,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'log_days_month', title: __('本月打卡天数'), operate: false},
{field: 'work_hours_month', title: __('本月打卡工时'), operate: false},
{field: 'is_complete', title: __('Is_complete'), formatter: Table.api.formatter.status, searchList: {0: __('否'), 1: __('是')}},
{field: 'work_subsidy', title: __('Work_subsidy'), operate: false},
// {field: 'work_subsidy', title: __('Work_subsidy'), operate: false},
{field: 'recruit_subsidy', title: __('Recruit_subsidy'), operate: false},
{field: 'work_subsidy_month', title: __('Work_subsidy_month'), operate: false},
{field: 'recruit_subsidy_month', title: __('Recruit_subsidy_month'), operate: false},
... ...