优化现有逻辑

This commit is contained in:
mgw
2023-09-13 15:40:36 +08:00
parent 4bcb12d3f1
commit c1739feabb
4 changed files with 48 additions and 12 deletions

View File

@@ -31,7 +31,7 @@ export class MyCustomWidget extends Many2ManyCheckboxesField {
}
}
MyCustomWidget.template = "sf_plan.MyCustomWidget"
MyCustomWidget.template = "jikimo_frontend.MyCustomWidget"
// MyCustomWidget.supportedTypes = ['many2many'];
registry.category("fields").add("custom_many2many_checkboxes", MyCustomWidget);

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-name="sf_plan.MyCustomWidget" owl="1">
<t t-name="jikimo_frontend.MyCustomWidget" owl="1">
<div aria-atomic="true" class="many2many_flex">
<t t-foreach="items" t-as="item" t-key="item[0]">
<div>

View File

@@ -12,25 +12,46 @@ class sf_production_plan(models.Model):
# _inherit = 'mrp.production'
_description = 'sf_production_plan'
name = fields.Char(string='名称')
state = fields.Selection([
('draft', '待排程'),
('done', '已排程'),
('processing', '已加工'),
('finished', '已完成')
], string='工单状态', tracking=True)
name = fields.Char(string='工单编号')
# selected = fields.Boolean(default=False)
order_number = fields.Char(string='订单号')
order_deadline = fields.Datetime(string='订单交期')
production_id = fields.Many2one('mrp.production', '关联制造订单')
product_qty = fields.Float(string='数量', digits='Product Unit of Measure', required=True, default=0.0)
production_line_id = fields.Many2one('sf.production.line', string='生产线')
date_planned_start = fields.Datetime(string='计划开始时间', required=True, index=True, copy=False,
default=fields.Datetime.now)
date_planned_finished = fields.Datetime(string='计划结束时间')
state = fields.Selection([
('draft', '未排程'), ('done', '已排程')], string='状态', copy=False, index=True, readonly=True,
store=True, tracking=True)
# 排程设置selection(倒排,顺排,默认倒排)
schedule_setting = fields.Selection([
('reverse', '倒排'), ('positive', '顺排')], string='排程设置', default='reverse')
product_id = fields.Many2one('product.product', '关联产品')
origin = fields.Char(string='来源')
# 加工时长
process_time = fields.Float(string='加工时长', digits=(16, 2))
# 实际加工时长、实际开始时间、实际结束时间
actual_process_time = fields.Float(string='实际加工时长', digits=(16, 2))
actual_start_time = fields.Datetime(string='实际开始时间')
actual_end_time = fields.Datetime(string='实际结束时间')
shift = fields.Char(string='班次')
# 序号、坯料编号、坯料名称、材质、数量、长度、宽度、厚度、直径、计划开始时间、计划结束时间、状态(已产出与待产出)、操作、创建人、创建时间、客户名称、订单号、行号、长度、宽度、厚度、直径、交货数量、交货日期
# sequence = fields.Integer(string='序号', required=True, copy=False, readonly=True, index=True,
# default=lambda self: self.env['ir.sequence'].sudo().next_by_code('sf.pl.plan'))
sequence = fields.Integer(string='序号', copy=False, readonly=True, index=True)
current_operation_name = fields.Char(string='当前工序名称', size=64, default='生产计划')
production_line_id = fields.Many2one('sf.production.line', string='生产线')
# state = fields.Selection([
# ('未排程', '未排程'), ('已排程', '已排程')], string='State', copy=False, index=True, readonly=True,

View File

@@ -9,11 +9,15 @@
<!-- <field name="selected" widget="boolean_toggle"/> -->
<!-- sequence、pl_no、pl_name、quantity、plan_start_time、plan_end_time、actual_start_time、actual_end_time、state、create_uid、create_date -->
<!-- <field name="sequence"/> -->
<field name="state" widget="badge" decoration-warning="state == 'draft'" decoration-success="state == 'done'"/>
<field name="name"/>
<field name="order_number"/>
<field name="order_deadline"/>
<field name="product_qty"/>
<field name="production_line_id"/>
<field name="date_planned_start"/>
<field name="date_planned_finished"/>
<field name="state" widget="badge" decoration-warning="state == 'draft'" decoration-success="state == 'done'"/>
<field name="schedule_setting"/>
<button name="do_production_schedule" class="btn schedule_done" string="生产排程" type="object" attrs="{'invisible': [('state', 'not in', ['draft'])]}"/>
<button name="cancel_production_schedule" class="btn schedule_cancel" string="取消排程" type="object" attrs="{'invisible': [('state', 'not in', ['done'])]}"/>
</tree>
@@ -28,6 +32,7 @@
<header>
<!-- <button string="执行排程" name="do_production_schedule" type="object" class="oe_highlight" icon="fa-step-forward"/> -->
<button string="执行排程" name="do_production_schedule" type="object" class="oe_highlight"/>
<button string="取消排程" name="cancel_production_schedule" type="object" class="oe_highlight"/>
<!-- <button string="销售单" name="test_sale_order" type="object" class="oe_highlight"/> -->
<!-- <button string="测试流程" name="liucheng_cs" type="object" class="oe_highlight"/> -->
<!-- <field name="state" widget="statusbar" statusbar_visible="draft,produce"/> -->
@@ -40,14 +45,21 @@
</div>
<group>
<group string="基本信息">
<field name="production_id"/>
<field name="production_id" widget="many2one_button"/>
<field name="product_id"/>
<field name="origin"/>
<field name="product_qty"/>
<field name="order_deadline"/>
<field name="process_time"/>
<field name="schedule_setting"/>
<field name="production_line_id"/>
<field name="date_planned_start"/>
<field name="date_planned_finished"/>
<field name="actual_process_time"/>
<field name="actual_start_time"/>
<field name="actual_end_time"/>
<field name="state"/>
<field name="production_line_id"/>
<field name="shift" widget="time"/>
</group>
<!-- <group string="规格信息" col="1"> -->
<!-- <group col="3"> -->
@@ -115,8 +127,11 @@
color="production_line_id"
decoration-success="state == 'done'"
progress_bar="name"
form_view_id="sf_production_plan_form">
form_view_id="sf_production_plan_form"
default_scale="year"
scales="day,week,month,year"
precision="{'day': 'hour:quarter', 'week': 'day:half', 'month': 'day', 'year': 'month:quarter'}">
<field name="shift"/>
<field name="name"/>
<field name="product_qty"/>
<field name="date_planned_start"/>