调整发布业务逻辑

This commit is contained in:
mgw
2025-03-14 10:44:54 +08:00
parent 35bcfa6fa1
commit f9525beb65
2 changed files with 27 additions and 13 deletions

View File

@@ -233,6 +233,7 @@ class QualityCheck(models.Model):
def do_publish(self): def do_publish(self):
"""发布出厂检验报告""" """发布出厂检验报告"""
self.ensure_one() self.ensure_one()
self._check_part_number()
# self._check_measure_line() # self._check_measure_line()
# self._check_check_qty_and_total_qty() # self._check_check_qty_and_total_qty()
@@ -266,14 +267,14 @@ class QualityCheck(models.Model):
res_ids=self.ids res_ids=self.ids
) )
attachment = self.env['ir.attachment'].create({ # attachment = self.env['ir.attachment'].create({
'name': self.name, # 'name': f'{self.name}.pdf',
'type': 'binary', # 'type': 'binary',
'datas': pdf_content, # 'datas': b64encode(pdf_content),
'res_model': self._name, # 'res_model': self._name,
'res_id': self.id, # 'res_id': self.id,
'mimetype': 'application/pdf', # 'mimetype': 'application/pdf',
}) # })
# 获取已发布的文档文件夹 # 获取已发布的文档文件夹
workspace = self.env['documents.folder'].search( workspace = self.env['documents.folder'].search(
@@ -288,9 +289,9 @@ class QualityCheck(models.Model):
# 3. 创建文档记录 # 3. 创建文档记录
doc_vals = { doc_vals = {
'name': f'FQC{str_part_number}{str_serial_number}', 'name': f'FQC{str_part_number}{str_serial_number}',
# 'raw': pdf_content, 'raw': pdf_content,
'attachment_id': attachment.id, # 'attachment_id': attachment.id,
# 'mimetype': 'application/pdf', 'mimetype': 'application/pdf',
'res_id': self.id, 'res_id': self.id,
'folder_id': workspace.id, 'folder_id': workspace.id,
'res_model': self._name, 'res_model': self._name,
@@ -320,6 +321,13 @@ class QualityCheck(models.Model):
# 返回成功消息 # 返回成功消息
return True return True
# 发布前检验零件图号、操机员、质检员
def _check_part_number(self):
if not self.part_number:
raise UserError(_('零件图号不能为空'))
if not self.measure_operator:
raise UserError(_('操机员不能为空'))
# 发布前校验明细行列均非空 # 发布前校验明细行列均非空
def _check_measure_line(self): def _check_measure_line(self):
for record in self: for record in self:
@@ -357,8 +365,7 @@ class QualityCheck(models.Model):
self.report_number_id.write({ self.report_number_id.write({
'folder_id': self.env.ref('sf_quality.documents_purchase_contracts_folder_canceled').id, 'folder_id': self.env.ref('sf_quality.documents_purchase_contracts_folder_canceled').id,
}) })
# 3. 更新发布状态
self.publish_status = 'canceled'
# 3. 记录发布历史 # 3. 记录发布历史
self.env['quality.check.report.history'].create({ self.env['quality.check.report.history'].create({
'check_id': self.id, 'check_id': self.id,
@@ -369,6 +376,12 @@ class QualityCheck(models.Model):
'document_status': 'canceled', 'document_status': 'canceled',
'sequence': len(self.report_history_ids) + 1 'sequence': len(self.report_history_ids) + 1
}) })
# 3. 更新发布状态
self.write({
'publish_status': 'canceled',
'report_number_id': False
})
return True return True
def do_re_publish(self): def do_re_publish(self):

View File

@@ -9,6 +9,7 @@
<field name="print_report_name">'QC-' + object.name + '.pdf'</field> <field name="print_report_name">'QC-' + object.name + '.pdf'</field>
<field name="binding_model_id" ref="model_quality_check"/> <!-- 请替换为实际的模型ID引用 --> <field name="binding_model_id" ref="model_quality_check"/> <!-- 请替换为实际的模型ID引用 -->
<field name="binding_type">report</field> <field name="binding_type">report</field>
<field name="attachment_use">False</field>
</record> </record>
<!-- 定义HTML预览报告动作 --> <!-- 定义HTML预览报告动作 -->