1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
namespace app\em\validate;
use think\Validate;
use app\em\model\Useage;
class UseageGeneralInfoValidate extends Validate
{
protected $rule = [
'em_id' => 'require',
'last_numb' => 'require',
'last_date' => 'require|date',
'current_numb' => 'require|checkNumb',
'current_date' => 'require|date|checkDate',
'photo_id' => 'require',
'staff_id' => 'require',
'price' => 'require',
'amount' =>'require|checkAmount'
];
protected $message = [
'em_id.require' => '电表参数错误',
'last_numb.require' => '上次抄表数不能为空',
'last_date.require' => '上次查表日期不正确',
'current_numb.require' => '请填写本次读数',
'current_date.require' => '请选择本次抄表日期',
'current_date.date' => '本次抄表日期格式不正确',
'photo_id.require' => '请上传电表照片',
'staff_id.require' => '请选择抄表员',
'price' => '单价必填且只能是数字或小数',
'amount.require' =>'实缴电费未填写'
];
protected $scene = [
's1' => 'em_id,last_numb,last_date,current_numb,current_date,photo_id,staff_id,price',
's2' => 'em_id,last_numb,last_date,current_numb,current_date,photo_id,staff_id,price,amount',
];
protected function checkDate($value,$rule,$data=[]){
$curr = strtotime($value);
$last = strtotime($data['last_date']);
$useage = Useage::where('em_id','=',$data['em_id'])->order('id desc')->find();
if($useage){
if($useage->current_date >= $value) return '本次抄表日期必须大于上次抄表日期';
}
return $curr > $last ? true : '本次抄表日期必须大于上次抄表日期';
}
protected function checkNumb($value,$rule,$data=[]){
return $value > $data['last_numb'] ? true : '本次抄表度数必须大于上次抄表度数';
}
protected function checkAmount($value,$rule,$data=[]){
return $value > 0 ? true : '实缴电费未填写';
}
}