$params['project_id'], 'bid_decision_id' => $params['bid_decision_id'], 'bid_document_no' => data_unique_code('购买标书'), 'invite_tenders_company_name' => $params['invite_tenders_company_name'], 'bid_company_name' => $params['bid_company_name'], 'buyer' => $params['buyer'] ?? 0, 'amount' => $params['amount'] ?? 0, 'buy_date' => !empty($params['buy_date']) ? strtotime($params['buy_date']) : 0, ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑购买标书 * @param array $params * @return bool * @author likeadmin * @date 2023/11/27 18:22 */ public static function edit(array $params): bool { Db::startTrans(); try { BidBuyBiddingDocument::where('id', $params['id'])->update([ 'project_id' => $params['project_id'], 'bid_decision_id' => $params['bid_decision_id'], 'invite_tenders_company_name' => $params['invite_tenders_company_name'], 'bid_company_name' => $params['bid_company_name'], 'buyer' => $params['buyer'] ?? 0, 'amount' => $params['amount'] ?? 0, 'buy_date' => !empty($params['buy_date']) ? strtotime($params['buy_date']) : 0, 'update_time' => time(), ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除购买标书 * @param array $params * @return bool * @author likeadmin * @date 2023/11/27 18:22 */ public static function delete(array $params): bool { $data = BidDocumentExamination::where('buy_bidding_document_id', $params['id'])->findOrEmpty(); if (!$data->isEmpty()) { self::setError('此数据关联了标书审查信息,需删除标书审查信息'); return false; } return BidBuyBiddingDocument::destroy($params['id']); } /** * @notes 获取购买标书详情 * @param $params * @return array * @author likeadmin * @date 2023/11/27 18:22 */ public static function detail($params): array { $data = BidBuyBiddingDocument::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']); $project = Project::field('custom_id,name,project_code')->where('id', $data['project_id'])->findOrEmpty(); $custom = Custom::field('name')->where('id', $project['custom_id'])->findOrEmpty(); $bid_decision = BidBiddingDecision::field('code,bidding_project_fund_source,bidding_time,bid_type,is_margin,margin_amount,bid_opening_date,margin_amount_return_date,bid_project_overview,project_desc,annex')->where('id', $data['bid_decision_id'])->findOrEmpty(); $admin = Admin::field('name')->where('id', $data['buyer'])->findOrEmpty(); $data['project_name'] = $project['name']; $data['project_code'] = $project['project_code']; $data['custom_name'] = $custom['name']; $data['bid_decision_code'] = $bid_decision['code']; $data['bidding_time'] = $bid_decision['bidding_time']; $data['bidding_project_fund_source'] = $bid_decision->bidding_project_fund_source_text; $data['bid_type'] = $bid_decision->bid_type_text; $data['is_margin'] = $bid_decision->is_margin_text; $data['margin_amount'] = $bid_decision['margin_amount']; $data['bid_opening_date'] = $bid_decision['bid_opening_date']; $data['margin_amount_return_date'] = $bid_decision['margin_amount_return_date']; $data['bid_project_overview'] = $bid_decision['bid_project_overview']; $data['project_desc'] = $bid_decision['project_desc']; $data['buyer_name'] = $admin['name']; $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); $data['approve_check_status'] = $approve_data['check_status']; return $data->toArray(); } public static function approve($params, $admin_id): bool { $data = BidBuyBiddingDocument::where('id', $params['id'])->findOrEmpty(); $approve_data = FlowApprove::where('id', $data['approve_id'])->findOrEmpty(); if ((!empty($data['approve_id']) && $approve_data['check_status'] != 3) || (!empty($data['approve_id']) && $approve_data['check_status'] != 4)) { self::setError('当前内容存在审核信息,请勿重复提交'); return false; } Db::startTrans(); try { $res = addApprove( '购买标书', $params['id'], 'app\common\model\bid\BidBuyBiddingDocument', $params['path'], $params['flow_id'], $admin_id ); if ($res) { BidBuyBiddingDocument::where('id', $params['id'])->update([ 'approve_id' => $res, ]); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } }