This commit is contained in:
weiz 2024-04-01 15:42:15 +08:00
parent adec12360b
commit e51d9ed831

View File

@ -12,164 +12,154 @@
// | author: likeadminTeam // | author: likeadminTeam
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
namespace app\adminapi\validate\finance; namespace app\adminapi\validate\finance;
use app\common\model\contract\ProcurementContract; use app\common\model\contract\ProcurementContract;
use app\common\model\contract\SubcontractingContract; use app\common\model\contract\SubcontractingContract;
use app\common\model\dict\DictData; use app\common\model\dict\DictData;
use app\common\model\finance\FinancePaymentPlan; use app\common\model\finance\FinancePaymentPlan;
use app\common\model\supplier\Supplier; use app\common\model\supplier\Supplier;
use app\common\validate\BaseValidate; use app\common\validate\BaseValidate;
/** /**
* FinancePaymentPlan验证器 * FinancePaymentPlan验证器
* Class FinancePaymentPlanValidate * Class FinancePaymentPlanValidate
* @package app\adminapi\validate\finance * @package app\adminapi\validate\finance
*/ */
class FinancePaymentPlanValidate extends BaseValidate class FinancePaymentPlanValidate extends BaseValidate
{
/**
* 设置校验规则
* @var string[]
*/
protected $rule = [
'id' => 'require|checkData',
'supplier_id' => 'require|checkSupplier',
'contract_cate' => 'require|in:1,2',
'contract_id' => 'require|checkContract',
'period' => 'require|checkPeriod',
'pay_date' => 'require|dateFormat:Y-m-d',
'amount' => 'require|float|gt:0',
'status' => 'require|checkStatus',
'annex' => 'checkAnnex',
'flow_id' => 'require|checkFlow',
'path' => 'require',
];
/**
* 参数描述
* @var string[]
*/
protected $field = [
'id' => 'id',
'supplier_id' => '供应商id',
'contract_cate' => '合同类型',
'contract_id' => '合同id',
'period' => '期次',
'pay_date' => '计划付款日期',
'amount' => '金额',
'status' => '状态',
];
/**
* @notes 添加场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneAdd()
{
return $this->remove('id', true)->remove('flow_id',true)->remove('path',true);
}
/**
* @notes 编辑场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneEdit()
{
return $this->remove('flow_id',true)->remove('path',true);
}
/**
* @notes 删除场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneDelete()
{
return $this->only(['id'])->remove('id','checkData');
}
/**
* @notes 详情场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneDetail()
{
return $this->only(['id']);
}
public function sceneApprove()
{ {
return $this->only(['id','flow_id','path']);
}
public function checkData($value): bool|string /**
{ * 设置校验规则
$data = FinancePaymentPlan::where('id',$value)->findOrEmpty(); * @var string[]
if($data->isEmpty()){ */
return '数据不存在'; protected $rule = [
} 'id' => 'require|checkData',
return true; 'supplier_id' => 'require|checkSupplier',
} 'contract_cate' => 'require|in:1,2',
'contract_id' => 'require|checkContract',
'period' => 'require|checkPeriod',
'pay_date' => 'require|dateFormat:Y-m-d',
'amount' => 'require|float|gt:0',
'annex' => 'checkAnnex',
'flow_id' => 'require|checkFlow',
'path' => 'require',
];
public function checkSupplier($value): bool|string
{
$supplier = Supplier::where('id',$value)->findOrEmpty();
if($supplier->isEmpty()){
return '供应商信息不存在';
}
return true;
}
public function checkContract($value,$rule,$data): bool|string /**
{ * 参数描述
if($data['contract_cate'] == 1){ * @var string[]
$contract = ProcurementContract::where('id',$value)->findOrEmpty()->toArray(); */
}elseif($data['contract_cate'] == 2){ protected $field = [
$contract = SubcontractingContract::where('id',$value)->findOrEmpty()->toArray(); 'id' => 'id',
}else{ 'supplier_id' => '供应商id',
$contract = []; 'contract_cate' => '合同类型',
} 'contract_id' => '合同id',
if(empty($contract)){ 'period' => '期次',
return '合同信息不存在'; 'pay_date' => '计划付款日期',
} 'amount' => '金额',
if($contract['supplier_id'] != $data['supplier_id']){ 'status' => '状态',
return '合同信息无效'; ];
}
return true;
}
public function checkPeriod($value): bool|string
{
$dict = DictData::where('type_value','pay_period')->column('value');
if(!in_array($value,$dict)){
return '期次无效';
}
return true;
}
public function checkStatus($value): bool|string /**
{ * @notes 添加场景
$dict = DictData::where('type_value','pay_status')->column('value'); * @return FinancePaymentPlanValidate
if(!in_array($value,$dict)){ * @author likeadmin
return '状态无效'; * @date 2023/12/15 11:14
*/
public function sceneAdd()
{
return $this->remove('id', true)->remove('flow_id', true)->remove('path', true);
} }
return true;
}
}
/**
* @notes 编辑场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneEdit()
{
return $this->remove('flow_id', true)->remove('path', true);
}
/**
* @notes 删除场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneDelete()
{
return $this->only(['id'])->remove('id', 'checkData');
}
/**
* @notes 详情场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneDetail()
{
return $this->only(['id']);
}
public function sceneApprove()
{
return $this->only(['id', 'flow_id', 'path']);
}
public function checkData($value): bool|string
{
$data = FinancePaymentPlan::where('id', $value)->findOrEmpty();
if ($data->isEmpty()) {
return '数据不存在';
}
return true;
}
public function checkSupplier($value): bool|string
{
$supplier = Supplier::where('id', $value)->findOrEmpty();
if ($supplier->isEmpty()) {
return '供应商信息不存在';
}
return true;
}
public function checkContract($value, $rule, $data): bool|string
{
if ($data['contract_cate'] == 1) {
$contract = ProcurementContract::where('id', $value)->findOrEmpty()->toArray();
} elseif ($data['contract_cate'] == 2) {
$contract = SubcontractingContract::where('id', $value)->findOrEmpty()->toArray();
} else {
$contract = [];
}
if (empty($contract)) {
return '合同信息不存在';
}
if ($contract['supplier_id'] != $data['supplier_id']) {
return '合同信息无效';
}
return true;
}
public function checkPeriod($value): bool|string
{
$dict = DictData::where('type_value', 'pay_period')->column('value');
if (!in_array($value, $dict)) {
return '期次无效';
}
return true;
}
}