需增加新表: 工价表
表头 单据编号
单据日期
工艺路线: (引用工艺路线MrpProcessRouting)
产品 (引用工艺路线MrpProcessRouting)
产品变体 (引用工艺路线MrpProcessRouting)
加工来源:
表体 行号 工艺明细 需外协 计件单位 工价 起订量要求 旧工价参考 备注
1 工艺1 (需外协----引用工艺路线MrpProcessRouting)widget="boolean_toggle"
2 (工艺明细---引用工艺路线MrpProcessRouting)widget="boolean_toggle"
3 工艺3
4 工艺4
5 工艺5
6 工艺6
class MrpProcessRouting(models.Model):
_name = 'mrp.process.routing'
_inherit = ['mail.thread']
_description = "工艺路线"
_order = 'active desc, sequence, name'
active = fields.Boolean(string="Active", default=True, tracking=True)
sequence = fields.Integer(string="路线序号", default=1)
name = fields.Char(string="路线名称", required=True, tracking=True)
reference = fields.Char(string='单据编号', required=True, copy=False, readonly=True,
default=lambda self: _('New'))
routing_state = fields.Selection(
selection=[('draft', "草稿"), ('await', "待审核"), ('under_review', "审核中"), ('reviewed', "已审核")],
string="工艺路线状态", default='draft', tracking=True)
routing_type = fields.Selection(selection=[('process', "按工艺"), ('group', "按工艺分组")],
default='process',
string="工艺路线类型",
tracking=True)
process_item = fields.Many2many('mrp.process.item', string="工艺明细")
group_classify_item = fields.Many2many('mrp.process.item.classify', string="工艺明细分类")
product_id = fields.Many2one('product.product', '产品变体', required=True)
product_tmpl_id = fields.Many2one('product.template', '产品', related='product_id.product_tmpl_id',
store=True, index=True)
review_state = fields.Selection(
selection=[('draft', "草稿"), ('await', "待审核"), ('under_review', "审核中"), ('reviewed', "已审核")],
string="审核状态", default='draft', tracking=True)
review_user = fields.Many2one('res.partner', string="审核人", tracking=True)
review_date = fields.Datetime(string="审核时间", tracking=True)
remark = fields.Html(string="备注")
inner_remark = fields.Html(string="内部备注")
process_fee_id = fields.Many2one('mrp.process.price', string='加工费', ondelete='cascade')
@api.model
def create(self, vals):
if vals.get('reference', _('New')) == _('New'):
vals['reference'] = self.env['ir.sequence'].next_by_code('mrp.process.routing') or _('New')
res = super(MrpProcessRouting, self).create(vals)
return res
class MrpProcessItemClassify(models.Model):
_name = 'mrp.process.item.classify'
_inherit = ['mail.thread']
_description = "工艺明细分类"
_order = 'active desc, sequence, name'
active = fields.Boolean(string="Active", default=True, tracking=True)
name = fields.Char(string="分类名称", required=True, tracking=True)
reference = fields.Char(string='单据编号', required=True, copy=False, readonly=True,
default=lambda self: _('New'))
sequence = fields.Integer(string="分类序号", default=1, tracking=True)
process_item = fields.Many2many('mrp.process.item', string="工艺明细")
outsourcing_required = fields.Boolean(string="需外协", default=False, tracking=True)
remark = fields.Text(string="备注")
@api.model
def create(self, vals):
if vals.get('reference', _('New')) == _('New'):
vals['reference'] = self.env['ir.sequence'].next_by_code('mrp.process.item.classify') or _('New')
res = super(MrpProcessItemClassify, self).create(vals)
return res
class MrpProcessItem(models.Model):
_name = 'mrp.process.item'
_description = "工艺明细"
_inherit = ['mail.thread']
_order = 'active desc, sequence, name'
active = fields.Boolean(string="Active", default=True, tracking=True)
name = fields.Char(string="工艺明细名称", required=True, tracking=True)
reference = fields.Char(string='单据编号', required=True, copy=False, readonly=True,
default=lambda self: _('New'))
sequence = fields.Integer(string="工艺明细序号", default=1, tracking=True)
outsourcing_required = fields.Boolean(string="需外协", default=False, tracking=True)
remark = fields.Text(string="备注")
@api.model
def create(self, vals):
if vals.get('reference', _('New')) == _('New'):
vals['reference'] = self.env['ir.sequence'].next_by_code('mrp.process.item') or _('New')
res = super(MrpProcessItem, self).create(vals)
return res
<!-- 工艺明细 Form View -->
<record id="view_mrp_process_item_form" model="ir.ui.view">
<field name="name">工艺明细form</field>
<field name="model">mrp.process.item</field>
<field name="arch" type="xml">
<form string="工艺明细">
<sheet>
<group>
<field name="sequence" invisible="1"/>
<field name="name"/>
<field name="reference"/>
<field name="outsourcing_required" widget="boolean_toggle"/>
</group>
<group>
<field name="remark"/>
</group>
<group string="维护信息">
<field name="create_uid" />
<field name="create_date" />
<field name="write_uid" />
<field name="write_date"/>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="view_mrp_process_item_classify_form" model="ir.ui.view">
<field name="name">工艺明细分类form</field>
<field name="model">mrp.process.item.classify</field>
<field name="arch" type="xml">
<form string="工艺明细分类">
<sheet>
<group>
<field name="sequence" invisible="1"/>
<field name="name"/>
<field name="reference"/>
<field name="process_item"/>
<field name="outsourcing_required" widget="boolean_toggle"/>
</group>
<group>
<field name="remark"/>
</group>
<group string="维护信息">
<field name="create_uid" />
<field name="create_date"/>
<field name="write_uid" />
<field name="write_date"/>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<!-- 工艺路线 Form View -->
<record id="view_mrp_process_routing_form" model="ir.ui.view">
<field name="name">工艺路线form</field>
<field name="model">mrp.process.routing</field>
<field name="arch" type="xml">
<form string="工艺明细">
<sheet>
<field name="active" invisible="1"/>
<group>
<field name="sequence"/>
<field name="reference"/>
<field name="name"/>
<field name="routing_state"/>
<field name="product_id" optional="show"/>
<field name="product_tmpl_id" optional="show"/>
<field name="routing_type" widget="selection_badge" options="{'horizontal': true, 'no_create': True, 'no_open': True}"/>
</group>
<group>
<field name="process_item" string="工艺" invisible="routing_type == 'group'">
</field>
<field name="group_classify_item" string="工艺分组" invisible="routing_type == 'process'">
</field>
</group>
<group>
<field name="review_state"/>
<field name="review_user"/>
<field name="review_date"/>
</group>
<notebook>
<page string="备注">
<field name="remark"/>
</page>
<page string="内部备注">
<field name="inner_remark"/>
</page>
<page string="维护信息">
<group>
<field name="create_uid" />
<field name="create_date" />
<field name="write_uid" />
<field name="write_date"/>
</group>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>