From 5d703b8b73fac53b5804849cf3c5c3fdf52bd5b6 Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Fri, 14 Mar 2025 17:44:57 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BC=93=E5=AD=98=E6=8A=A5=E5=91=8A=E9=99=84?=
=?UTF-8?q?=E4=BB=B6=EF=BC=8C=E5=B9=B6=E6=B8=85=E7=90=86=E6=97=A7=E9=99=84?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
quality_control/models/quality.py | 30 ++++++++++++++++++++++++++++++
sf_quality/data/report_actions.xml | 3 ++-
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/quality_control/models/quality.py b/quality_control/models/quality.py
index 01ffe3fd..e7ad73ba 100644
--- a/quality_control/models/quality.py
+++ b/quality_control/models/quality.py
@@ -419,6 +419,36 @@ class QualityCheck(models.Model):
width=140, height=140)
)
)
+
+ def get_latest_report_attachment(self, check_id):
+ """获取指定质检记录的最新报告附件,并删除旧的报告附件"""
+ # 查找特定质检记录的所有附件
+ attachments = self.env['ir.attachment'].search([
+ ('res_model', '=', 'quality.check'),
+ ('res_id', '=', check_id),
+ ('name', 'like', 'QC-QC') # 根据您的命名规则调整
+ ], order='create_date DESC') # 按创建日期降序排序
+
+ # 如果附件数量大于1,则删除除最新报告外的其他报告附件
+ if len(attachments) > 1:
+ for attachment in attachments[1:]:
+ attachment.unlink()
+
+ # 返回最新的附件(如果存在)
+ return attachments and attachments[0] or False
+
+ def get_report_url(self):
+ """生成报告访问URL,确保获取最新版本"""
+ base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
+ report_url = f"{base_url}/web/content/ir.attachment"
+
+ # 获取最新附件的ID
+ latest_attachment = self.get_latest_report_attachment(self.id)
+ if latest_attachment:
+ # 生成包含附件ID的URL
+ print(f"{report_url}/{latest_attachment.id}/datas")
+ return f"{report_url}/{latest_attachment.id}/datas"
+ return False
@depends('product_id')
def _compute_material_name(self):
diff --git a/sf_quality/data/report_actions.xml b/sf_quality/data/report_actions.xml
index b65a4b55..7ee44f63 100644
--- a/sf_quality/data/report_actions.xml
+++ b/sf_quality/data/report_actions.xml
@@ -9,7 +9,8 @@
'QC-' + object.name + '.pdf'
report
- False
+ 'QC-'+object.name+'-'+str(object.write_date)+'.pdf'
+ True