当询价单确认为采购单时,根据采购申请明细行变为采购单数量来完成采购申请
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.tools import float_compare
|
||||
|
||||
|
||||
class PurchaseOrder(models.Model):
|
||||
@@ -38,3 +39,18 @@ class PurchaseOrder(models.Model):
|
||||
move_ids.write({'state': 'waiting', 'is_done': False})
|
||||
return res
|
||||
|
||||
def write(self, vals):
|
||||
res = super(PurchaseOrder, self).write(vals)
|
||||
if 'state' in vals and vals['state'] == 'purchase':
|
||||
purchase_request = self.order_line.purchase_request_lines.request_id
|
||||
if purchase_request:
|
||||
finished = True
|
||||
# 判断该采购申请所有明细行是否都完成
|
||||
for purchase_request_line in purchase_request.line_ids:
|
||||
finished_qty = sum(purchase_request_line.purchase_lines.filtered(lambda line: line.state == 'purchase').mapped('product_qty'))
|
||||
if float_compare(finished_qty ,purchase_request_line.product_qty, precision_rounding=purchase_request_line.product_id.uom_id.rounding) < 0:
|
||||
finished = False
|
||||
break
|
||||
if finished:
|
||||
purchase_request.button_done()
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user