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

View File

@ -11,165 +11,155 @@
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\validate\finance;
use app\common\model\contract\ProcurementContract;
use app\common\model\contract\SubcontractingContract;
use app\common\model\dict\DictData;
use app\common\model\finance\FinancePaymentPlan;
use app\common\model\supplier\Supplier;
use app\common\validate\BaseValidate;
/**
* FinancePaymentPlan验证器
* Class FinancePaymentPlanValidate
* @package app\adminapi\validate\finance
*/
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']);
}
namespace app\adminapi\validate\finance;
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;
}
use app\common\model\contract\ProcurementContract;
use app\common\model\contract\SubcontractingContract;
use app\common\model\dict\DictData;
use app\common\model\finance\FinancePaymentPlan;
use app\common\model\supplier\Supplier;
use app\common\validate\BaseValidate;
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
/**
* FinancePaymentPlan验证器
* Class FinancePaymentPlanValidate
* @package app\adminapi\validate\finance
*/
class FinancePaymentPlanValidate extends BaseValidate
{
$dict = DictData::where('type_value','pay_period')->column('value');
if(!in_array($value,$dict)){
return '期次无效';
/**
* 设置校验规则
* @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',
'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);
}
return true;
}
public function checkStatus($value): bool|string
{
$dict = DictData::where('type_value','pay_status')->column('value');
if(!in_array($value,$dict)){
return '状态无效';
/**
* @notes 编辑场景
* @return FinancePaymentPlanValidate
* @author likeadmin
* @date 2023/12/15 11:14
*/
public function sceneEdit()
{
return $this->remove('flow_id', true)->remove('path', true);
}
return 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;
}
}