Accept Merge Request #2180: (feature/搜索优化 -> develop)
Merge Request: 采购申请单完成操作提示调整 Created By: @管欢 Reviewed By: @胡尧 Approved By: @胡尧 Accepted By: @管欢 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2180
This commit is contained in:
@@ -41,13 +41,14 @@ class PurchaseRequest(models.Model):
|
||||
if lines:
|
||||
for line in lines:
|
||||
for line_item in line.order_line:
|
||||
product_id = line_item.product_id.id
|
||||
qty = line_item.product_qty
|
||||
product_rounding[product_id] = line_item.product_id.uom_id.rounding
|
||||
if product_id in product_summary:
|
||||
product_summary[product_id] += qty
|
||||
else:
|
||||
product_summary[product_id] = qty
|
||||
if line_item.state == 'purchase':
|
||||
product_id = line_item.product_id.id
|
||||
qty = line_item.product_qty
|
||||
product_rounding[product_id] = line_item.product_id.uom_id.rounding
|
||||
if product_id in product_summary:
|
||||
product_summary[product_id] += qty
|
||||
else:
|
||||
product_summary[product_id] = qty
|
||||
|
||||
# 校验产品数量
|
||||
discrepancies = []
|
||||
@@ -60,10 +61,10 @@ class PurchaseRequest(models.Model):
|
||||
|
||||
if discrepancies:
|
||||
# 弹出提示框
|
||||
message = "产品数量不一致:\n"
|
||||
message = "产品与采购数量不一致:\n"
|
||||
for product_id, required_qty, order_qty in discrepancies:
|
||||
product_name = self.env['product.product'].browse(product_id).display_name # 获取产品名称
|
||||
message += f"产品 {product_name},需求数量 {required_qty},关联采购订单数量 {order_qty}(含询价状态)\n"
|
||||
message += f"产品 {product_name},需求数量 {required_qty},关联采购订单确认的数量 {order_qty}。\n"
|
||||
# 添加确认框
|
||||
message += "确认关闭?"
|
||||
return {
|
||||
|
||||
@@ -227,22 +227,30 @@ class ResMrpWorkOrder(models.Model):
|
||||
# finish_move.move_dest_ids.move_line_ids.reserved_uom_qty = 0
|
||||
else:
|
||||
next_workorder = sorted_workorders[position + 1]
|
||||
next_state = next_workorder.state
|
||||
if next_state not in ['pending', 'waiting', 'ready']:
|
||||
raise UserError('下工序已经开始,无法回退')
|
||||
if next_workorder.is_subcontract:
|
||||
next_workorder.picking_ids.write({'state': 'waiting'})
|
||||
next_workorder.state = 'pending'
|
||||
self.time_ids.date_end = None
|
||||
cur_workorder.state = 'progress'
|
||||
cur_workorder.production_id.state = 'progress'
|
||||
quality_check = self.env['quality.check'].search(
|
||||
[('workorder_id', '=', self.id)])
|
||||
for check_order in quality_check:
|
||||
if check_order.point_id.is_inspect:
|
||||
check_order.quality_state = 'waiting'
|
||||
# 持续获取下一个工单,直到找到一个不是返工的工单
|
||||
while next_workorder and next_workorder.state == 'rework':
|
||||
position += 1
|
||||
if position + 1 < len(sorted_workorders):
|
||||
next_workorder = sorted_workorders[position + 1]
|
||||
else:
|
||||
check_order.quality_state = 'none'
|
||||
next_workorder = None
|
||||
if next_workorder:
|
||||
next_state = next_workorder.state
|
||||
if next_state not in ['pending', 'waiting', 'ready']:
|
||||
raise UserError('下工序已经开始,无法回退')
|
||||
if next_workorder.is_subcontract:
|
||||
next_workorder.picking_ids.write({'state': 'waiting'})
|
||||
next_workorder.state = 'pending'
|
||||
self.time_ids.date_end = None
|
||||
cur_workorder.state = 'progress'
|
||||
cur_workorder.production_id.state = 'progress'
|
||||
quality_check = self.env['quality.check'].search(
|
||||
[('workorder_id', '=', self.id)])
|
||||
for check_order in quality_check:
|
||||
if check_order.point_id.is_inspect:
|
||||
check_order.quality_state = 'waiting'
|
||||
else:
|
||||
check_order.quality_state = 'none'
|
||||
|
||||
def _compute_working_users(self):
|
||||
super()._compute_working_users()
|
||||
|
||||
Reference in New Issue
Block a user