Accept Merge Request #1123: (feature/sf物流方面缺陷与优化 -> develop)

Merge Request: 优化订单状态

Created By: @马广威
Accepted By: @马广威
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/1123?initial=true
This commit is contained in:
马广威
2024-07-01 16:57:22 +08:00
committed by Coding
2 changed files with 12 additions and 42 deletions

View File

@@ -30,13 +30,10 @@ class MrpProduction(models.Model):
# ('completed', '已完工')
# ])
state = fields.Selection([
('draft', '待排程'),
('confirmed', '加工'),
('draft', '草稿'),
('confirmed', '排程'),
('pending_cam', '待加工'),
('progress', '加工中'),
# ('pending_cam', '待装夹'),
# ('pending_processing', '待加工'),
# ('pending_era_cam', '待解除装夹'),
('completed', '已完工'),
('to_close', 'To Close'),
('done', 'Done'),
('cancel', 'Cancelled')], string='State',
@@ -82,7 +79,7 @@ class MrpProduction(models.Model):
@api.depends(
'move_raw_ids.state', 'move_raw_ids.quantity_done', 'move_finished_ids.state',
'workorder_ids.state', 'product_qty', 'qty_producing', 'schedule_state', 'process_state')
'workorder_ids.state', 'product_qty', 'qty_producing', 'schedule_state')
def _compute_state(self):
for production in self:
if not production.state or not production.product_uom_id:
@@ -103,27 +100,6 @@ class MrpProduction(models.Model):
elif not production.workorder_ids and float_compare(production.qty_producing, production.product_qty,
precision_rounding=production.product_uom_id.rounding) >= 0:
production.state = 'to_close'
elif any(wo_state in ('progress') for wo_state in production.workorder_ids.mapped('state')):
production.state = 'progress'
elif production.product_uom_id and not float_is_zero(production.qty_producing,
precision_rounding=production.product_uom_id.rounding):
production.state = 'progress'
elif any(not float_is_zero(move.quantity_done,
precision_rounding=move.product_uom.rounding or move.product_id.uom_id.rounding)
for move in production.move_raw_ids):
production.state = 'progress'
# 新添加的状态逻辑
if production.state == 'to_close' and production.schedule_state == '未排':
production.state = 'draft'
elif production.state == 'to_close' and production.schedule_state == '已排':
production.state = 'confirmed'
# if production.schedule_state == '已完成':
# production.state = 'completed'
elif production.workorder_ids and production.workorder_ids[0].state == 'ready':
production.state = 'confirmed'
elif all(wo_state in ('done') for wo_state in production.workorder_ids.mapped('state')):
production.state = 'done'
elif any(wo_state in ('progress', 'done') for wo_state in production.workorder_ids.mapped('state')):
production.state = 'progress'
elif production.product_uom_id and not float_is_zero(production.qty_producing,
@@ -131,20 +107,14 @@ class MrpProduction(models.Model):
production.state = 'progress'
elif any(not float_is_zero(move.quantity_done,
precision_rounding=move.product_uom.rounding or move.product_id.uom_id.rounding)
for move in production.move_raw_ids):
for move in production.move_raw_ids if move.product_id):
production.state = 'progress'
# if production.state == 'progress' and production.schedule_state == '已排' and production.process_state == '待装夹':
# # production.state = 'pending_processing'
# production.state = 'pending_cam'
# if production.state == 'progress' and production.schedule_state == '已排' and production.process_state == '待加工':
# # if production.state == 'pending_cam' and production.process_state == '待加工':
# production.state = 'pending_processing'
# elif production.state == 'progress' and production.process_state == '待解除装夹':
# production.state = 'pending_era_cam'
# elif production.state == 'progress' and production.process_state == '已完工':
# production.state = 'completed'
# elif production.state == 'progress' and production.work_order_state == '已完成':
# production.state = 'completed'
# # 新添加的状态逻辑
if production.state == 'to_close' and production.schedule_state == '未排':
production.state = 'confirmed'
elif production.state == 'to_close' and production.schedule_state == '已排':
production.state = 'pending_cam'
def action_check(self):
"""

View File

@@ -65,7 +65,7 @@
<!-- <attribute name="statusbar_visible">draft,confirmed,progress,pending_processing,completed,done -->
<!-- </attribute> -->
<attribute name="statusbar_visible">
draft,confirmed,progress,completed,done
confirmed,pending_cam,progress,done
</attribute>
</xpath>
<xpath expr="//sheet//group//group[2]//label" position="before">