调整质检单字段
This commit is contained in:
@@ -5,6 +5,7 @@ from odoo import fields, models, api
|
||||
from odoo.exceptions import ValidationError
|
||||
from datetime import datetime
|
||||
from odoo.addons.sf_base.commons.common import Common
|
||||
from odoo.tools import float_round
|
||||
|
||||
|
||||
class QualityCheck(models.Model):
|
||||
@@ -145,39 +146,55 @@ class QualityCheck(models.Model):
|
||||
return super(QualityCheck, self).create(vals_list)
|
||||
|
||||
|
||||
@api.depends('move_line_id.qty_done', 'workorder_id.qty_produced')
|
||||
def _compute_qty_line(self):
|
||||
super(QualityCheck, self)._compute_qty_line()
|
||||
@api.depends('total_qty','testing_percentage_within_lot', 'is_lot_tested_fractionally')
|
||||
def _compute_workorder_qty_to_test(self):
|
||||
for qc in self:
|
||||
if qc.is_lot_tested_fractionally:
|
||||
rounding = qc.product_id.uom_id.rounding if qc.product_id.uom_id else 0.01
|
||||
qc.workorder_qty_to_test = float_round(float(qc.total_qty) * qc.testing_percentage_within_lot / 100,
|
||||
precision_rounding=rounding, rounding_method="UP")
|
||||
else:
|
||||
qc.workorder_qty_to_test = qc.total_qty
|
||||
|
||||
@api.depends('picking_id', 'workorder_id')
|
||||
def _compute_total_qty(self):
|
||||
super(QualityCheck, self)._compute_total_qty()
|
||||
for qc in self:
|
||||
if not qc.move_line_id and qc.workorder_id:
|
||||
qc.qty_line = qc.workorder_id.production_id.product_qty
|
||||
if not qc.picking_id and qc.workorder_id:
|
||||
qc.total_qty = qc.workorder_id.production_id.product_qty
|
||||
|
||||
qty_line = fields.Float('数量', store=True)
|
||||
qty_test_failed = fields.Float('不合格数')
|
||||
qty_to_test = fields.Float('应检', store=True)
|
||||
qty_tested = fields.Float('已检')
|
||||
@api.depends('workorder_qty_to_test')
|
||||
def _compute_workorder_qty_tested(self):
|
||||
for qc in self:
|
||||
qc.workorder_qty_tested = qc.workorder_qty_to_test
|
||||
|
||||
@api.onchange('qty_line', 'qty_test_failed', 'qty_to_test', 'qty_tested')
|
||||
|
||||
workorder_qty_to_test = fields.Float('应检', compute='_compute_workorder_qty_to_test', store=True)
|
||||
workorder_qty_tested = fields.Float('已检', compute='_compute_workorder_qty_tested', store=True)
|
||||
workorder_qty_test_failed = fields.Float('不合格数')
|
||||
|
||||
|
||||
@api.onchange('total_qty', 'workorder_qty_test_failed', 'workorder_qty_to_test', 'workorder_qty_tested')
|
||||
def _onchage_qty(self):
|
||||
for record in self:
|
||||
if record.qty_line and record.qty_to_test and record.qty_to_test > record.qty_line:
|
||||
record.qty_to_test = record.qty_line
|
||||
if record.total_qty and record.workorder_qty_to_test and record.workorder_qty_to_test > float(record.total_qty):
|
||||
record.workorder_qty_to_test = float(record.total_qty)
|
||||
return {
|
||||
'warning': {
|
||||
'title': '警告',
|
||||
'message': '待检数量不能超过总数量'
|
||||
}
|
||||
}
|
||||
if record.qty_to_test and record.qty_tested and record.qty_tested > record.qty_to_test:
|
||||
record.qty_tested = record.qty_to_test
|
||||
if record.workorder_qty_to_test and record.workorder_qty_tested and record.workorder_qty_tested > record.workorder_qty_to_test:
|
||||
record.workorder_qty_tested = record.workorder_qty_to_test
|
||||
return {
|
||||
'warning': {
|
||||
'title': '警告',
|
||||
'message': '已检数量不能超过待检数量'
|
||||
}
|
||||
}
|
||||
if record.qty_tested and record.qty_test_failed and record.qty_test_failed > record.qty_tested:
|
||||
record.qty_test_failed = record.qty_tested
|
||||
if record.workorder_qty_tested and record.workorder_qty_test_failed and record.workorder_qty_test_failed > record.workorder_qty_tested:
|
||||
record.workorder_qty_test_failed = record.workorder_qty_tested
|
||||
return {
|
||||
'warning': {
|
||||
'title': '警告',
|
||||
|
||||
Reference in New Issue
Block a user