'require', 'project_id' => 'require|checkProject', 'person_id' => 'require|checkPerson', 'attendance_date' => 'require|dateFormat:Y-m-d', 'work_start_time' => 'checkWorkStartTime', 'work_end_time' => 'checkWorkEndTime', 'work_record_num' => 'require|float|gt:0', 'daily_salary' => 'require|float|gt:0', 'daily_living' => 'require|float|gt:0', 'daily_subsidy' => 'require|float|egt:0', 'daily_other' => 'require|float|egt:0', 'daily_income' => 'require|float|gt:0', ]; protected $message = [ 'id.require' => '缺少必要参数', 'project_id.require' => '请选择项目', 'person_id.require' => '请选择项目人员', 'attendance_date.require' => '请选择考勤日期', 'attendance_date.dateFormat' => '考勤日期格式错误', 'work_record_num.require' => '请填写记工数量', 'work_record_num.float' => '记工数量值必须是数字', 'work_record_num.gt' => '记工数量值必须大于0', 'daily_salary.require' => '请填写日工资', 'daily_salary.float' => '日工资值必须是数字', 'daily_salary.gt' => '日工资值必须大于0', 'daily_living.require' => '请填写日生活费', 'daily_living.float' => '日生活费值必须是数字', 'daily_living.gt' => '日生活费值必须大于0', 'daily_subsidy.require' => '请填写日补贴', 'daily_subsidy.float' => '日补贴值必须是数字', 'daily_subsidy.egt' => '日补贴值必须大于等于0', 'daily_other.require' => '请填写日其它', 'daily_other.float' => '日其它值必须是数字', 'daily_other.egt' => '日其它值必须大于等于0', 'daily_income.require' => '请填写日收入', 'daily_income.float' => '日收入必须是数字', 'daily_income.gt' => '日收入值必须大于0', ]; /** * @notes 添加场景 * @return ProjectAttendanceDetailValidate * @author likeadmin * @date 2023/12/26 10:54 */ public function sceneAdd() { return $this->remove('id',true); } /** * @notes 编辑场景 * @return ProjectAttendanceDetailValidate * @author likeadmin * @date 2023/12/26 10:54 */ public function sceneEdit() { return $this->only(['id','attendance_date','work_start_time','work_end_time','work_record_num','daily_salary','daily_living','daily_subsidy','daily_other','daily_income']); } /** * @notes 删除场景 * @return ProjectAttendanceDetailValidate * @author likeadmin * @date 2023/12/26 10:54 */ public function sceneDelete() { return $this->only(['id']); } /** * @notes 详情场景 * @return ProjectAttendanceDetailValidate * @author likeadmin * @date 2023/12/26 10:54 */ public function sceneDetail() { return $this->only(['id']); } public function checkProject($value): bool|string { $data = Project::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '项目不存在'; } return true; } public function checkPerson($value,$rule,$data): bool|string { $person = ProjectPersonnel::where('id',$value)->findOrEmpty(); if($person->isEmpty() || $person['project_id'] != $data['project_id']){ return '项目人员不存在'; } return true; } public function checkWorkStartTime($value): bool|string { if($value != ''){ if(date('Y-m-d H:i',strtotime($value)) != $value){ return '上班时间格式错误'; } } return true; } public function checkWorkEndTime($value,$rule,$data): bool|string { if($value != ''){ if(date('Y-m-d H:i',strtotime($value)) != $value){ return '下班时间格式错误'; } if(strtotime($value) - strtotime($data['work_start_time']) <= 0){ return '下班时间不能小于上班时间'; } } return true; } }