'require|checkData', 'buy_bidding_document_id' => 'require|checkBuyBiddingDocument', 'technical_review_annex' => 'checkAnnex', 'business_contract_deviation_annex' => 'checkAnnex', 'tax_rate' => 'checkTaxRate', 'pay_type' => 'checkPayType', 'quotation_detail' => 'checkQuotationDetail', 'flow_id' => 'require|checkFlow', 'path' => 'require', ]; protected $message = [ 'id.require' => '缺少必要参数', 'buy_bidding_document_id.require' => '请选择标书编号', ]; /** * @notes 添加场景 * @return BidDocumentExaminationValidate * @author likeadmin * @date 2023/12/02 09:52 */ public function sceneAdd() { return $this->remove('id', true)->remove('flow_id',true)->remove('path',true); } /** * @notes 编辑场景 * @return BidDocumentExaminationValidate * @author likeadmin * @date 2023/12/02 09:52 */ public function sceneEdit() { return $this->remove('flow_id',true)->remove('path',true); } /** * @notes 删除场景 * @return BidDocumentExaminationValidate * @author likeadmin * @date 2023/12/02 09:52 */ public function sceneDelete() { return $this->only(['id']); } public function sceneApprove() { return $this->only(['id','flow_id','path']); } /** * @notes 详情场景 * @return BidDocumentExaminationValidate * @author likeadmin * @date 2023/12/02 09:52 */ public function sceneDetail() { return $this->only(['id']); } public function checkData($value): bool|string { $data = BidDocumentExamination::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '数据不存在'; } return true; } public function checkBuyBiddingDocument($value): bool|string { $data = BidBuyBiddingDocument::where('id',$value)->findOrEmpty(); if($data->isEmpty()){ return '标书信息不存在'; } return true; } public function checkTaxRate($value): bool|string { $dictDate = DictData::where('type_value','tax_rate')->column('value'); if(!in_array($value,$dictDate)){ return '税率无效'; } return true; } public function checkPayType($value): bool|string { $dictDate = DictData::where('type_value','pay_type')->column('value'); if(!in_array($value,$dictDate)){ return '付款方式无效'; } return true; } public function checkQuotationDetail($value): bool|string { if(empty($value) || !is_array($value)){ return '审查明细数据格式错误'; } foreach($value as $k=>$v) { if(!empty($v['id'])){ $quotation_detail = BidDocumentExaminationDetail::where('id',$v['id'])->findOrEmpty(); if($quotation_detail->isEmpty()) return '审查明细列表第'.($k+1).'行审查明细数据不存在'; } if(empty($v['product_id'])){ return '请选择产品'; }else{ $product = Material::where('id',$v['product_id'])->findOrEmpty(); if($product->isEmpty()){ return '产品信息不存在'; } } if(empty($v['num'])){ return '审查明细列表第'.($k+1).'数量不能为空'; }else{ if(!is_numeric($v['num']) || $v['num'] < 0){ return '审查明细列表第'.($k+1).'数量必须是大于0的数字'; } } if(empty($v['cost_price'])){ return '审查明细列表第'.($k+1).'成本单价不能为空'; }else{ if(!is_numeric($v['cost_price']) || $v['cost_price'] < 0){ return '审查明细列表第'.($k+1).'成本单价必须是大于0的数字'; } } if(empty($v['sale_price'])){ return '审查明细列表第'.($k+1).'报价单价不能为空'; }else{ if(!is_numeric($v['sale_price']) || $v['sale_price'] < 0){ return '审查明细列表第'.($k+1).'报价单价必须是大于0的数字'; } } if(empty($v['points'])){ return '审查明细列表第'.($k+1).'点数不能为空'; }else{ if(!is_numeric($v['points']) || $v['points'] < 0){ return '审查明细列表第'.($k+1).'点数必须是大于0的数字'; } } } return true; } }