Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/修复外协出入库单
This commit is contained in:
@@ -859,12 +859,12 @@ class ResProductMo(models.Model):
|
|||||||
raise UserError('请先配置模型类型内的坯料冗余')
|
raise UserError('请先配置模型类型内的坯料冗余')
|
||||||
vals = {
|
vals = {
|
||||||
'name': '%s-%s-%s' % ('P', order_id.name, i),
|
'name': '%s-%s-%s' % ('P', order_id.name, i),
|
||||||
'model_long': item['model_long'] + embryo_redundancy_id.long,
|
'model_long': self.format_float(item['model_long'] + embryo_redundancy_id.long),
|
||||||
'model_width': item['model_width'] + embryo_redundancy_id.width,
|
'model_width': self.format_float(item['model_width'] + embryo_redundancy_id.width),
|
||||||
'model_height': item['model_height'] + embryo_redundancy_id.height,
|
'model_height': self.format_float(item['model_height'] + embryo_redundancy_id.height),
|
||||||
'model_volume': (item['model_long'] + embryo_redundancy_id.long) * (
|
'model_volume': self.format_float((item['model_long'] + embryo_redundancy_id.long) * (
|
||||||
item['model_width'] + embryo_redundancy_id.width) * (
|
item['model_width'] + embryo_redundancy_id.width) * (
|
||||||
item['model_height'] + embryo_redundancy_id.height),
|
item['model_height'] + embryo_redundancy_id.height)),
|
||||||
'product_model_type_id': model_type.id,
|
'product_model_type_id': model_type.id,
|
||||||
'model_processing_panel': item['processing_panel_detail'],
|
'model_processing_panel': item['processing_panel_detail'],
|
||||||
'model_machining_precision': item['model_machining_precision'],
|
'model_machining_precision': item['model_machining_precision'],
|
||||||
@@ -907,6 +907,20 @@ class ResProductMo(models.Model):
|
|||||||
self.attachment_update(item['quality_standard_name'], copy_product_id.product_tmpl_id.id,
|
self.attachment_update(item['quality_standard_name'], copy_product_id.product_tmpl_id.id,
|
||||||
'quality_standard', item['quality_standard_mimetype'])
|
'quality_standard', item['quality_standard_mimetype'])
|
||||||
return copy_product_id
|
return copy_product_id
|
||||||
|
|
||||||
|
def format_float(self, value):
|
||||||
|
# 将浮点数转换为字符串
|
||||||
|
value_str = str(value)
|
||||||
|
# 检查小数点的位置
|
||||||
|
if '.' in value_str:
|
||||||
|
# 获取小数部分
|
||||||
|
decimal_part = value_str.split('.')[1]
|
||||||
|
# 判断小数位数是否超过2位
|
||||||
|
if len(decimal_part) > 2:
|
||||||
|
# 超过2位则保留2位小数
|
||||||
|
return "{:.2f}".format(value)
|
||||||
|
# 否则保持原来的位数
|
||||||
|
return float(value_str)
|
||||||
|
|
||||||
def _get_ids(self, param):
|
def _get_ids(self, param):
|
||||||
type_ids = []
|
type_ids = []
|
||||||
|
|||||||
@@ -423,6 +423,8 @@ class ProductionLot(models.Model):
|
|||||||
"""Generate `lot_names` from a string."""
|
"""Generate `lot_names` from a string."""
|
||||||
if first_lot.__contains__(display_name):
|
if first_lot.__contains__(display_name):
|
||||||
first_lot = first_lot[(len(display_name) + 1):]
|
first_lot = first_lot[(len(display_name) + 1):]
|
||||||
|
else:
|
||||||
|
first_lot = first_lot[-3:]
|
||||||
|
|
||||||
# We look if the first lot contains at least one digit.
|
# We look if the first lot contains at least one digit.
|
||||||
caught_initial_number = regex_findall(r"\d+", first_lot)
|
caught_initial_number = regex_findall(r"\d+", first_lot)
|
||||||
|
|||||||
@@ -51,5 +51,10 @@
|
|||||||
</xpath>
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
<record id="stock.action_picking_tree_all" model="ir.actions.act_window">
|
||||||
|
<field name="view_ids" eval="[(5, 0, 0),
|
||||||
|
(0, 0, {'view_mode': 'tree', 'view_id': ref('stock.vpicktree')})]"/>
|
||||||
|
</record>
|
||||||
</data>
|
</data>
|
||||||
</odoo>
|
</odoo>
|
||||||
@@ -242,10 +242,10 @@ class sf_production_plan(models.Model):
|
|||||||
# 设置一个小的开始时间
|
# 设置一个小的开始时间
|
||||||
first_cnc_workorder.date_planned_start = datetime.now() - timedelta(days=100)
|
first_cnc_workorder.date_planned_start = datetime.now() - timedelta(days=100)
|
||||||
first_cnc_workorder.date_planned_finished = date_start + timedelta(
|
first_cnc_workorder.date_planned_finished = date_start + timedelta(
|
||||||
minutes=routing_workcenter.time_cycle)
|
minutes=routing_workcenter.time_cycle + routing_workcenter.reserved_duration)
|
||||||
first_cnc_workorder.date_planned_start = date_start
|
first_cnc_workorder.date_planned_start = date_start
|
||||||
record.sudo().production_id.plan_start_processing_time = first_cnc_workorder.date_planned_start
|
record.sudo().production_id.plan_start_processing_time = first_cnc_workorder.date_planned_start
|
||||||
first_cnc_workorder.duration_expected = routing_workcenter.time_cycle
|
first_cnc_workorder.duration_expected = routing_workcenter.time_cycle + routing_workcenter.reserved_duration
|
||||||
record.calculate_plan_time(first_cnc_workorder, record.production_id.workorder_ids)
|
record.calculate_plan_time(first_cnc_workorder, record.production_id.workorder_ids)
|
||||||
# 找到最后一张CNC加工工单
|
# 找到最后一张CNC加工工单
|
||||||
last_cnc_workorder = record.production_id.workorder_ids.filtered(lambda x: x.name == 'CNC加工')[-1]
|
last_cnc_workorder = record.production_id.workorder_ids.filtered(lambda x: x.name == 'CNC加工')[-1]
|
||||||
@@ -257,10 +257,10 @@ class sf_production_plan(models.Model):
|
|||||||
routing_workcenter = item.technology_design_id.route_id
|
routing_workcenter = item.technology_design_id.route_id
|
||||||
item.date_planned_start = datetime.now() - timedelta(days=100)
|
item.date_planned_start = datetime.now() - timedelta(days=100)
|
||||||
item.date_planned_finished = wo_start + timedelta(
|
item.date_planned_finished = wo_start + timedelta(
|
||||||
minutes=routing_workcenter.time_cycle)
|
minutes=routing_workcenter.time_cycle + routing_workcenter.reserved_duration)
|
||||||
item.date_planned_start = wo_start
|
item.date_planned_start = wo_start
|
||||||
record.sudo().production_id.plan_start_processing_time = item.date_planned_start
|
record.sudo().production_id.plan_start_processing_time = item.date_planned_start
|
||||||
item.duration_expected = routing_workcenter.time_cycle
|
item.duration_expected = routing_workcenter.time_cycle + routing_workcenter.reserved_duration
|
||||||
record.calculate_plan_time(item, record.production_id.workorder_ids)
|
record.calculate_plan_time(item, record.production_id.workorder_ids)
|
||||||
last_cnc_workorder = record.production_id.workorder_ids[-1]
|
last_cnc_workorder = record.production_id.workorder_ids[-1]
|
||||||
record.date_planned_finished = last_cnc_workorder.date_planned_finished
|
record.date_planned_finished = last_cnc_workorder.date_planned_finished
|
||||||
@@ -338,8 +338,8 @@ class sf_production_plan(models.Model):
|
|||||||
next_workorder.date_planned_start = datetime.now() - timedelta(days=100)
|
next_workorder.date_planned_start = datetime.now() - timedelta(days=100)
|
||||||
next_workorder.date_planned_finished = current_workorder.date_planned_start
|
next_workorder.date_planned_finished = current_workorder.date_planned_start
|
||||||
next_workorder.date_planned_start = next_workorder.date_planned_finished - timedelta(
|
next_workorder.date_planned_start = next_workorder.date_planned_finished - timedelta(
|
||||||
minutes=routing_workcenter.time_cycle)
|
minutes=routing_workcenter.time_cycle + routing_workcenter.reserved_duration)
|
||||||
next_workorder.duration_expected = routing_workcenter.time_cycle
|
next_workorder.duration_expected = routing_workcenter.time_cycle + routing_workcenter.reserved_duration
|
||||||
|
|
||||||
for i in range(item_position, len(workorder_list) - 1):
|
for i in range(item_position, len(workorder_list) - 1):
|
||||||
if i > len(workorder_list) - 1:
|
if i > len(workorder_list) - 1:
|
||||||
@@ -350,9 +350,9 @@ class sf_production_plan(models.Model):
|
|||||||
# 设置一个小的开始时间
|
# 设置一个小的开始时间
|
||||||
next_workorder.date_planned_start = datetime.now() - timedelta(days=100)
|
next_workorder.date_planned_start = datetime.now() - timedelta(days=100)
|
||||||
next_workorder.date_planned_finished = current_workorder.date_planned_finished + timedelta(
|
next_workorder.date_planned_finished = current_workorder.date_planned_finished + timedelta(
|
||||||
minutes=routing_workcenter.time_cycle)
|
minutes=routing_workcenter.time_cycle + routing_workcenter.reserved_duration)
|
||||||
next_workorder.date_planned_start = current_workorder.date_planned_finished
|
next_workorder.date_planned_start = current_workorder.date_planned_finished
|
||||||
next_workorder.duration_expected = routing_workcenter.time_cycle
|
next_workorder.duration_expected = routing_workcenter.time_cycle + routing_workcenter.reserved_duration
|
||||||
|
|
||||||
def calculate_plan_time_after(self, item, workorder_id_list):
|
def calculate_plan_time_after(self, item, workorder_id_list):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user