$params['customer_id'] ?? 0, 'approve_id' => $params['approve_id'] ?? 0, 'quotation_date' => $params['quotation_date'] ?? '', 'contacts' => $params['contacts'] ?? '', 'contacts_phone' => $params['contacts_phone'] ?? '', 'create_user' => $params['create_user'] ?? '', 'invoice_type' => $params['invoice_type'] ?? 0, 'amount_including_tax' => $params['amount_including_tax'] ?? 0, 'freight' => $params['freight'] ?? 0, 'other_fee' => $params['other_fee'] ?? 0, 'total_amount' => $params['total_amount'] ?? 0, 'customer_require' => $params['customer_require'] ?? '', 'remark' => $params['remark'] ?? '', 'annex' => $params['annex'] ?? '', ]); foreach ($params['product'] ?? [] as $item) { QuotationDetail::create([ 'quotation_id' => $quotation->id, 'product_id' => $item['product_id'], 'product_num' => $item['product_num'], 'tax_rate' => $item['tax_rate'], 'remark' => $item['remark'] ?? '' ]); } 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 17:23 */ public static function edit(array $params): bool { Db::startTrans(); try { Quotation::where('id', $params['id'])->update([ 'customer_id' => $params['customer_id'] ?? 0, 'approve_id' => $params['approve_id'] ?? 0, 'quotation_date' => $params['quotation_date'] ?? '', 'contacts' => $params['contacts'] ?? '', 'contacts_phone' => $params['contacts_phone'] ?? '', 'create_user' => $params['create_user'] ?? '', 'invoice_type' => $params['invoice_type'] ?? 0, 'amount_including_tax' => $params['amount_including_tax'] ?? 0, 'freight' => $params['freight'] ?? 0, 'other_fee' => $params['other_fee'] ?? 0, 'total_amount' => $params['total_amount'] ?? 0, 'customer_require' => $params['customer_require'] ?? '', 'remark' => $params['remark'] ?? '', 'annex' => $params['annex'] ?? '', ]); QuotationDetail::where('quotation_id', $params['id'])->update(['delete_time' =>time()]); foreach ($params['product'] ?? [] as $item) { QuotationDetail::create([ 'quotation_id' => $params['id'], 'product_id' => $item['product_id'], 'product_num' => $item['product_num'], 'tax_rate' => $item['tax_rate'], 'remark' => $item['remark'] ?? '' ]); } 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 17:23 */ public static function delete(array $params): bool { QuotationDetail::where('quotation_id', $params['id'])->update(['delete_time'=>time()]); return Quotation::destroy($params['id']); } /** * @notes 获取报价单详情 * @param $params * @return array * @author likeadmin * @date 2023/11/27 17:23 */ public static function detail($params): array { $quotation = Quotation::findOrEmpty($params['id']); $quotation->product; $quotation->custom; return $quotation->toArray(); } }