|
@@ -53,7 +53,41 @@ class LaborReport extends Model
|
|
|
}
|
|
}
|
|
|
//修改临时工报表数据
|
|
//修改临时工报表数据
|
|
|
static function updateLaborReportData($laborReport,$userDutyCheck){
|
|
static function updateLaborReportData($laborReport,$userDutyCheck){
|
|
|
|
|
+ //正常打卡情况
|
|
|
|
|
+ if($userDutyCheck->type=='登出'){
|
|
|
|
|
+ $laborReport->check_out_at=$userDutyCheck->checked_at;
|
|
|
|
|
+ $checkInDate=Carbon::parse($laborReport['check_in_at']);
|
|
|
|
|
+ $checkOutDate=Carbon::parse($userDutyCheck->checked_at);
|
|
|
|
|
+ $hour=($checkOutDate->diffInSeconds($checkInDate))/3600; //在线时长
|
|
|
|
|
+ $laborReport['online_duration']=$hour;
|
|
|
|
|
+ $laborReport['working_duration']= $laborReport['online_duration'];
|
|
|
|
|
+ $laborReport->update();
|
|
|
|
|
+ }
|
|
|
|
|
+ $date=Carbon::parse($laborReport['check_in_at'])->format('Y-m-d');
|
|
|
$userDutyCheckOld=UserDutyCheck::where('user_id',$userDutyCheck->user_id)->orderBy('checked_at','DESC')->limit(10)->first();
|
|
$userDutyCheckOld=UserDutyCheck::where('user_id',$userDutyCheck->user_id)->orderBy('checked_at','DESC')->limit(10)->first();
|
|
|
|
|
+ //补卡情况
|
|
|
|
|
+ if ($userDutyCheck->type=='登入'&&$userDutyCheckOld->checked_at>$userDutyCheck->checked_at&&$userDutyCheck->checked_at<$date." 11:00".":00"){
|
|
|
|
|
+ $laborReport['check_in_at']=$userDutyCheck['checked_at'];
|
|
|
|
|
+ $checkInDate=Carbon::parse($laborReport['check_in_at']);
|
|
|
|
|
+ if ($laborReport->check_out_at){
|
|
|
|
|
+ $checkOutDate=Carbon::parse($laborReport->check_out_at);
|
|
|
|
|
+ $hour=($checkOutDate->diffInSeconds($checkInDate))/3600; //在线时长
|
|
|
|
|
+ $laborReport['online_duration']=$hour;
|
|
|
|
|
+ }
|
|
|
|
|
+ $laborReport->update();
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($userDutyCheck->type=='登入'&&$userDutyCheckOld->checked_at<$userDutyCheck->checked_at){
|
|
|
|
|
+ $userDutyCheck->save();
|
|
|
|
|
+ $userDutyCheckStart=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00")
|
|
|
|
|
+ ->where('checked_at','<=',$date." 14:00:00")->where('type','登出')->first();
|
|
|
|
|
+ $userDutyCheckEnd=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('type','登入')->where('checked_at','>=',$date." 11:00".":00")
|
|
|
|
|
+ ->where('checked_at','<=',$date." 14:00:00")->first();
|
|
|
|
|
+ $beginTime=Carbon::parse($userDutyCheckStart['checked_at']);
|
|
|
|
|
+ $endTime=Carbon::parse($userDutyCheckEnd['checked_at']);
|
|
|
|
|
+ $lunchHour=($endTime->diffInSeconds($beginTime))/3600;
|
|
|
|
|
+ $laborReport['working_duration']=$laborReport['online_duration']-$lunchHour;
|
|
|
|
|
+ $laborReport->update();
|
|
|
|
|
+ }
|
|
|
if ($userDutyCheck->type=='登出'&&$userDutyCheckOld->checked_at<$userDutyCheck->checked_at){
|
|
if ($userDutyCheck->type=='登出'&&$userDutyCheckOld->checked_at<$userDutyCheck->checked_at){
|
|
|
$laborReport->check_out_at=$userDutyCheck->checked_at;
|
|
$laborReport->check_out_at=$userDutyCheck->checked_at;
|
|
|
$checkInDate=Carbon::parse($laborReport['check_in_at']);
|
|
$checkInDate=Carbon::parse($laborReport['check_in_at']);
|
|
@@ -63,13 +97,8 @@ class LaborReport extends Model
|
|
|
$laborReport['working_duration']=$hour;
|
|
$laborReport['working_duration']=$hour;
|
|
|
$laborReport->update();
|
|
$laborReport->update();
|
|
|
}
|
|
}
|
|
|
- //补卡情况
|
|
|
|
|
- if ($userDutyCheck->type=='登入'&&$userDutyCheckOld->checked_at>$userDutyCheck->checked_at){
|
|
|
|
|
- $laborReport['check_in_at']=$userDutyCheck['checked_at'];
|
|
|
|
|
- $laborReport->update();
|
|
|
|
|
- }
|
|
|
|
|
- $date=Carbon::parse($laborReport['check_in_at'])->format('Y-m-d');
|
|
|
|
|
- if ($laborReport){
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if ($laborReport&&$laborReport->check_out_at){
|
|
|
$userDutyCheckStart=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00")
|
|
$userDutyCheckStart=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00")
|
|
|
->where('checked_at','<=',$date." 14:00:00")->where('type','登出')->first();
|
|
->where('checked_at','<=',$date." 14:00:00")->where('type','登出')->first();
|
|
|
$userDutyCheckEnd=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00")
|
|
$userDutyCheckEnd=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00")
|