mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update seq
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
<record id="seq_product_auto" model="ir.sequence">
|
<record id="seq_product_auto" model="ir.sequence">
|
||||||
<field name="name">Sequence for All Products</field>
|
<field name="name">Sequence for All Products</field>
|
||||||
<field name="code">product.product</field>
|
<field name="code">product.product</field>
|
||||||
<field name="prefix">P%(y)s%(month)s</field>
|
<field name="prefix">PR%(y)s%(month)s</field>
|
||||||
<field name="padding">5</field>
|
<field name="padding">5</field>
|
||||||
<field name="company_id" eval="False"/>
|
<field name="company_id" eval="False"/>
|
||||||
<field name="initial">True</field>
|
<field name="initial">True</field>
|
||||||
@@ -54,6 +54,7 @@
|
|||||||
<record id="internal_type_mrp_product" model="product.internal.type">
|
<record id="internal_type_mrp_product" model="product.internal.type">
|
||||||
<field name="name">Manufactured Product</field>
|
<field name="name">Manufactured Product</field>
|
||||||
<field name="ref">cp</field>
|
<field name="ref">cp</field>
|
||||||
|
<field name="sequence">1</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">0</field>
|
<field name="purchase_ok">0</field>
|
||||||
@@ -65,6 +66,7 @@
|
|||||||
<record id="internal_type_mrp_component" model="product.internal.type">
|
<record id="internal_type_mrp_component" model="product.internal.type">
|
||||||
<field name="name">Manufactured Components</field>
|
<field name="name">Manufactured Components</field>
|
||||||
<field name="ref">bj</field>
|
<field name="ref">bj</field>
|
||||||
|
<field name="sequence">2</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">0</field>
|
<field name="sale_ok">0</field>
|
||||||
<field name="purchase_ok">0</field>
|
<field name="purchase_ok">0</field>
|
||||||
@@ -76,6 +78,7 @@
|
|||||||
<record id="internal_type_sourced_material" model="product.internal.type">
|
<record id="internal_type_sourced_material" model="product.internal.type">
|
||||||
<field name="name">Components Product</field>
|
<field name="name">Components Product</field>
|
||||||
<field name="ref">bc</field>
|
<field name="ref">bc</field>
|
||||||
|
<field name="sequence">3</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">0</field>
|
<field name="sale_ok">0</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
@@ -87,6 +90,7 @@
|
|||||||
<record id="internal_type_sourced_product" model="product.internal.type">
|
<record id="internal_type_sourced_product" model="product.internal.type">
|
||||||
<field name="name">Sourced Product</field>
|
<field name="name">Sourced Product</field>
|
||||||
<field name="ref">cl</field>
|
<field name="ref">cl</field>
|
||||||
|
<field name="sequence">4</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
@@ -94,6 +98,28 @@
|
|||||||
<field name="description">Set prefix as "CL" in link sequence</field>
|
<field name="description">Set prefix as "CL" in link sequence</field>
|
||||||
<field name="link_sequence" ref="seq_sourced_product"/>
|
<field name="link_sequence" ref="seq_sourced_product"/>
|
||||||
</record>
|
</record>
|
||||||
|
<!-- 服务与费用 Service-->
|
||||||
|
<record id="internal_type_service" model="product.internal.type">
|
||||||
|
<field name="name">Service</field>
|
||||||
|
<field name="ref">fw</field>
|
||||||
|
<field name="sequence">5</field>
|
||||||
|
<field name="type">service</field>
|
||||||
|
<field name="sale_ok">1</field>
|
||||||
|
<field name="purchase_ok">1</field>
|
||||||
|
<field name="description">Set prefix as "PR" in link sequence</field>
|
||||||
|
<field name="link_sequence" ref="seq_product_auto"/>
|
||||||
|
</record>
|
||||||
|
<!-- 消耗品,无限库存 Consu-->
|
||||||
|
<record id="internal_type_consu" model="product.internal.type">
|
||||||
|
<field name="name">Consumer</field>
|
||||||
|
<field name="ref">xh</field>
|
||||||
|
<field name="sequence">6</field>
|
||||||
|
<field name="type">consu</field>
|
||||||
|
<field name="sale_ok">1</field>
|
||||||
|
<field name="purchase_ok">1</field>
|
||||||
|
<field name="description">Set prefix as "PR" in link sequence</field>
|
||||||
|
<field name="link_sequence" ref="seq_product_auto"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!--这个默认值可以不用,因为在onchange事件会设置很多值-->
|
<!--这个默认值可以不用,因为在onchange事件会设置很多值-->
|
||||||
<!--设置产品默认值为制造成品-->
|
<!--设置产品默认值为制造成品-->
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
<record id="internal_type_mrp_product" model="product.internal.type">
|
<record id="internal_type_mrp_product" model="product.internal.type">
|
||||||
<field name="name">Manufactured Product</field>
|
<field name="name">Manufactured Product</field>
|
||||||
<field name="ref">d</field>
|
<field name="ref">d</field>
|
||||||
|
<field name="sequence">1</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">0</field>
|
<field name="purchase_ok">0</field>
|
||||||
@@ -63,6 +64,7 @@
|
|||||||
<record id="internal_type_sourced_material" model="product.internal.type">
|
<record id="internal_type_sourced_material" model="product.internal.type">
|
||||||
<field name="name">Components Product</field>
|
<field name="name">Components Product</field>
|
||||||
<field name="ref">c</field>
|
<field name="ref">c</field>
|
||||||
|
<field name="sequence">2</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">0</field>
|
<field name="sale_ok">0</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
@@ -73,6 +75,7 @@
|
|||||||
<record id="internal_type_sourced_product" model="product.internal.type">
|
<record id="internal_type_sourced_product" model="product.internal.type">
|
||||||
<field name="name">Sourced Product</field>
|
<field name="name">Sourced Product</field>
|
||||||
<field name="ref">s</field>
|
<field name="ref">s</field>
|
||||||
|
<field name="sequence">3</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
@@ -83,6 +86,7 @@
|
|||||||
<record id="internal_type_service" model="product.internal.type">
|
<record id="internal_type_service" model="product.internal.type">
|
||||||
<field name="name">Service</field>
|
<field name="name">Service</field>
|
||||||
<field name="ref">v</field>
|
<field name="ref">v</field>
|
||||||
|
<field name="sequence">4</field>
|
||||||
<field name="type">service</field>
|
<field name="type">service</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
<record id="internal_type_mrp_product" model="product.internal.type">
|
<record id="internal_type_mrp_product" model="product.internal.type">
|
||||||
<field name="name">制造的成品</field>
|
<field name="name">制造的成品</field>
|
||||||
<field name="ref">cp</field>
|
<field name="ref">cp</field>
|
||||||
|
<field name="sequence">1</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">0</field>
|
<field name="purchase_ok">0</field>
|
||||||
@@ -65,6 +66,7 @@
|
|||||||
<record id="internal_type_mrp_component" model="product.internal.type">
|
<record id="internal_type_mrp_component" model="product.internal.type">
|
||||||
<field name="name">制造的板件</field>
|
<field name="name">制造的板件</field>
|
||||||
<field name="ref">bj</field>
|
<field name="ref">bj</field>
|
||||||
|
<field name="sequence">2</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">0</field>
|
<field name="sale_ok">0</field>
|
||||||
<field name="purchase_ok">0</field>
|
<field name="purchase_ok">0</field>
|
||||||
@@ -76,6 +78,7 @@
|
|||||||
<record id="internal_type_sourced_material" model="product.internal.type">
|
<record id="internal_type_sourced_material" model="product.internal.type">
|
||||||
<field name="name">制造用原材料(板材)</field>
|
<field name="name">制造用原材料(板材)</field>
|
||||||
<field name="ref">bc</field>
|
<field name="ref">bc</field>
|
||||||
|
<field name="sequence">3</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">0</field>
|
<field name="sale_ok">0</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
@@ -85,8 +88,9 @@
|
|||||||
</record>
|
</record>
|
||||||
<!--其它外购品,如五金-->
|
<!--其它外购品,如五金-->
|
||||||
<record id="internal_type_sourced_product" model="product.internal.type">
|
<record id="internal_type_sourced_product" model="product.internal.type">
|
||||||
<field name="name">外购成品(五金等)</field>
|
<field name="name">外购材料(五金等)</field>
|
||||||
<field name="ref">cl</field>
|
<field name="ref">cl</field>
|
||||||
|
<field name="sequence">4</field>
|
||||||
<field name="type">product</field>
|
<field name="type">product</field>
|
||||||
<field name="sale_ok">1</field>
|
<field name="sale_ok">1</field>
|
||||||
<field name="purchase_ok">1</field>
|
<field name="purchase_ok">1</field>
|
||||||
@@ -94,6 +98,28 @@
|
|||||||
<field name="description">Set prefix as "CL" in link sequence</field>
|
<field name="description">Set prefix as "CL" in link sequence</field>
|
||||||
<field name="link_sequence" ref="seq_sourced_product"/>
|
<field name="link_sequence" ref="seq_sourced_product"/>
|
||||||
</record>
|
</record>
|
||||||
|
<!-- 服务与费用 Service-->
|
||||||
|
<record id="internal_type_service" model="product.internal.type">
|
||||||
|
<field name="name">服务与费用</field>
|
||||||
|
<field name="ref">fw</field>
|
||||||
|
<field name="sequence">5</field>
|
||||||
|
<field name="type">service</field>
|
||||||
|
<field name="sale_ok">1</field>
|
||||||
|
<field name="purchase_ok">1</field>
|
||||||
|
<field name="description">Set prefix as "PR" in link sequence</field>
|
||||||
|
<field name="link_sequence" ref="seq_product_auto"/>
|
||||||
|
</record>
|
||||||
|
<!-- 消耗品,无限库存 Consu-->
|
||||||
|
<record id="internal_type_consu" model="product.internal.type">
|
||||||
|
<field name="name">消耗品</field>
|
||||||
|
<field name="ref">xh</field>
|
||||||
|
<field name="sequence">6</field>
|
||||||
|
<field name="type">consu</field>
|
||||||
|
<field name="sale_ok">0</field>
|
||||||
|
<field name="purchase_ok">0</field>
|
||||||
|
<field name="description">Set prefix as "PR" in link sequence</field>
|
||||||
|
<field name="link_sequence" ref="seq_product_auto"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
<!--这个默认值可以不用,因为在onchange事件会设置很多值-->
|
<!--这个默认值可以不用,因为在onchange事件会设置很多值-->
|
||||||
<!--设置产品默认值为制造成品-->
|
<!--设置产品默认值为制造成品-->
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ from openerp import api, fields, models, _
|
|||||||
|
|
||||||
class ProductInternalType(models.Model):
|
class ProductInternalType(models.Model):
|
||||||
_name = "product.internal.type"
|
_name = "product.internal.type"
|
||||||
|
_order = 'sequence, name'
|
||||||
|
|
||||||
|
sequence = fields.Integer('Sequence', default=9)
|
||||||
name = fields.Char('Display Name', default='Normal', translate=True)
|
name = fields.Char('Display Name', default='Normal', translate=True)
|
||||||
description = fields.Char('Description')
|
description = fields.Char('Description')
|
||||||
ref = fields.Char('Unique Code', required=True)
|
ref = fields.Char('Unique Code', required=True)
|
||||||
|
|||||||
@@ -20,20 +20,22 @@ from openerp import models, fields, api, exceptions, _
|
|||||||
class ProductProduct(models.Model):
|
class ProductProduct(models.Model):
|
||||||
_inherit = 'product.product'
|
_inherit = 'product.product'
|
||||||
|
|
||||||
default_code = fields.Char('Internal Reference', index=True, default=lambda self: _('New'), copy=False)
|
default_code = fields.Char('Internal Reference', index=True, default='New', copy=False)
|
||||||
default_code_index = fields.Integer('Internal Reference Index', readonly=True)
|
default_code_index = fields.Integer('Internal Reference Index', readonly=True)
|
||||||
|
|
||||||
_sql_constraints = [
|
# todo: 检查数据,要保证数据唯一性
|
||||||
('uniq_default_code',
|
# 为免报错,不限制唯一性
|
||||||
'unique(default_code)',
|
# _sql_constraints = [
|
||||||
'The reference must be unique'),
|
# ('uniq_default_code',
|
||||||
]
|
# 'unique(default_code)',
|
||||||
|
# 'The reference must be unique'),
|
||||||
|
# ]
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def create(self, vals):
|
def create(self, vals):
|
||||||
# todo: but 先建空白产品后,编辑2个以上变体,序号会少个 -1
|
# todo: but 先建空白产品后,编辑2个以上变体,序号会少个 -1
|
||||||
# code_index: 当没有变体现时,值为0,有变体时,为该变体序号
|
# code_index: 当没有变体现时,值为0,有变体时,为该变体序号
|
||||||
if 'default_code' not in vals or vals['default_code'] == _('New'):
|
if 'default_code' not in vals or vals['default_code'] == 'New':
|
||||||
code_index = 0
|
code_index = 0
|
||||||
if 'product_tmpl_id' in vals:
|
if 'product_tmpl_id' in vals:
|
||||||
template = self.env['product.template'].search([('id', '=', vals['product_tmpl_id'])], limit=1)
|
template = self.env['product.template'].search([('id', '=', vals['product_tmpl_id'])], limit=1)
|
||||||
@@ -73,12 +75,16 @@ class ProductProduct(models.Model):
|
|||||||
else:
|
else:
|
||||||
# create from product_product
|
# create from product_product
|
||||||
sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
|
sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
|
||||||
|
if not sequence:
|
||||||
|
sequence = self.env.ref('app_product_type_sequence.internal_type_mrp_product', raise_if_not_found=False)
|
||||||
if sequence:
|
if sequence:
|
||||||
vals['default_code'] = sequence.link_sequence.next_by_id()
|
vals['default_code'] = sequence.link_sequence.next_by_id()
|
||||||
else:
|
else:
|
||||||
sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
|
# 如果有自己输入 ref,则不需要自运输生成
|
||||||
if sequence:
|
# sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
|
||||||
vals['default_code'] = sequence.link_sequence.next_by_id()
|
# if sequence:
|
||||||
|
# vals['default_code'] = sequence.link_sequence.next_by_id()
|
||||||
|
pass
|
||||||
return super(ProductProduct, self).create(vals)
|
return super(ProductProduct, self).create(vals)
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ class ProductTemplate(models.Model):
|
|||||||
compute='_compute_default_code',
|
compute='_compute_default_code',
|
||||||
inverse='_set_default_code',
|
inverse='_set_default_code',
|
||||||
store=True,
|
store=True,
|
||||||
default=lambda self: _('New'), copy=False)
|
default='New', copy=False)
|
||||||
# 因为default_code有odoo的处理方式,影响面大,故会将其另存到 default_code_stored
|
# 因为default_code有odoo的处理方式,影响面大,故会将其另存到 default_code_stored
|
||||||
default_code_stored = fields.Char('Internal Reference Stored',default=lambda self: _('New'))
|
default_code_stored = fields.Char('Internal Reference Stored',default='New')
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def create(self, vals):
|
def create(self, vals):
|
||||||
@@ -44,8 +44,10 @@ class ProductTemplate(models.Model):
|
|||||||
|
|
||||||
if not (self.env.context.get('create_product_product')):
|
if not (self.env.context.get('create_product_product')):
|
||||||
# 当从产品模板界面建立时(如果从产品界面建立,则已经生成了编码,不需要再处理)
|
# 当从产品模板界面建立时(如果从产品界面建立,则已经生成了编码,不需要再处理)
|
||||||
if 'default_code' not in vals or vals['default_code'] == _('New'):
|
if 'default_code' not in vals or vals['default_code'] == 'New':
|
||||||
sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
|
sequence = self.env['product.internal.type'].search([('id', '=', vals['internal_type'])], limit=1)
|
||||||
|
if not sequence:
|
||||||
|
sequence = self.env.ref('app_product_type_sequence.internal_type_mrp_product', raise_if_not_found=False)
|
||||||
vals['default_code'] = sequence.link_sequence.next_by_id()
|
vals['default_code'] = sequence.link_sequence.next_by_id()
|
||||||
vals['default_code_stored'] = vals['default_code']
|
vals['default_code_stored'] = vals['default_code']
|
||||||
return super(ProductTemplate, self).create(vals)
|
return super(ProductTemplate, self).create(vals)
|
||||||
|
|||||||
21
app_product_type_sequence/views/felive_view.xml
Normal file
21
app_product_type_sequence/views/felive_view.xml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<!--产品Form-->
|
||||||
|
<record id="felive_product_template_form_view" model="ir.ui.view">
|
||||||
|
<field name="name">product.template.common.form</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="inherit_id" ref="felive_core.felive_product_template_view_form"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//div[@name='options']" position="before">
|
||||||
|
<div>
|
||||||
|
<h4>
|
||||||
|
<label class="oe_edit_only" for="internal_type"/>
|
||||||
|
<field name="internal_type" options="{'no_create': True,'no_open': True}" required="1"/>
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
<field name="model">product.internal.type</field>
|
<field name="model">product.internal.type</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Product Internal Type">
|
<tree string="Product Internal Type">
|
||||||
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="ref"/>
|
<field name="ref"/>
|
||||||
<field name="type"/>
|
<field name="type"/>
|
||||||
@@ -35,6 +36,7 @@
|
|||||||
<group>
|
<group>
|
||||||
<group>
|
<group>
|
||||||
<field name="ref"/>
|
<field name="ref"/>
|
||||||
|
<field name="sequence"/>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<field name="description"/>
|
<field name="description"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user