<?php
namespace app\common\validate;

use think\Db;
use think\Validate;

class FCleanPlan extends Validate{

    protected $rule = [
        'title|名称'  =>  'require|length:1,200',
        'year|年份'  =>  'require|checkYear',
        'forms|任务项'  =>  'require',
        'addrs|地点'  =>  'require',
        'user|人员'  =>  'require',
        'month|月份'  =>  'require|checkMonth',
    ];

    protected $message = [
        'title.length' => '名称必须200字以内',
    ];

    protected $scene = [
        'add' => ['title','year','forms','addrs','user'],
        'madd' => ['month','forms','addrs','user']
    ];

    protected function checkYear($value, $rule, $data=[]){
        $info = Db::name('f_clean_plan')->where('year',$value)->where('del',0)->where('org_id',$data['org_id'])->find();
        if($data['id'] <= 0 && $info){
            return '该年份已设置计划';
        }
        if($info && $data['id'] > 0 && $info['id'] != $data['id']){
            return '该年份已设置计划';
        }
        return true;
    }

    protected function checkMonth($value, $rule, $data=[]){
        if(!$data['pid']){
            return '参数错误';
        }
        $info = Db::name('f_clean_plan')->where('month',$value)->where('del',0)->where('org_id',$data['org_id'])->find();
        if($data['id'] <= 0 && $info){
            return '该月份已设置计划';
        }
        if($info && $data['id'] > 0 && $info['id'] != $data['id']){
            return '该月份已设置计划';
        }
        return true;
    }

}