update app_seq

This commit is contained in:
ivan deng
2018-01-09 23:39:07 +08:00
parent 33363d657c
commit c6f0044d78
6 changed files with 93 additions and 15 deletions

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<!-- 更新序号规则 Auto Internal Reference. -->
<!-- 所有的 All Products. -->
<record id="seq_product_auto" model="ir.sequence">
<field name="name">Sequence for All Products</field>
<field name="code">product.product</field>
<field name="prefix">P%(y)s%(month)s</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
<field name="initial">True</field>
</record>
<!-- 制造的成品 manufactured Products. -->
<record id="seq_manufacture" model="ir.sequence">
<field name="name">Sequence for Manufactured Product</field>
<field name="code">product.product</field>
<field name="prefix">D%(y)s%(month)s</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
<field name="initial">True</field>
</record>
<!-- 制造的原料 Components.-->
<record id="seq_component" model="ir.sequence">
<field name="name">Sequence for Components Product</field>
<field name="code">product.product</field>
<field name="prefix">C%(y)s%(month)s</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
<field name="initial">True</field>
</record>
<!-- 采购的成品 Sourced Products.-->
<record id="seq_sourced" model="ir.sequence">
<field name="name">Sequence for Sourced Product</field>
<field name="code">product.product</field>
<field name="prefix">S%(y)s%(month)s</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
<field name="initial">True</field>
</record>
<!-- internal_type 数据-->
<record id="internal_type_manufacture" model="product.internal.type">
<field name="name">Manufactured Product</field>
<field name="description">Set prefix as "D" in link sequence</field>
<field name="link_sequence" ref="seq_manufacture"/>
</record>
<record id="internal_type_sourced" model="product.internal.type">
<field name="name">Sourced Product</field>
<field name="description">Set prefix as "S" in link sequence</field>
<field name="link_sequence" ref="seq_sourced"/>
</record>
<record id="internal_type_component" model="product.internal.type">
<field name="name">Components Product</field>
<field name="description">Set prefix as "C" in link sequence</field>
<field name="link_sequence" ref="seq_component"/>
</record>
<!--设置产品默认值为制造产品-->
<record id="product_internal_type_default" model="ir.values">
<field name="name">internal_type</field>
<field name="model">product.template</field>
<field name="key">default</field>
<field name="key2"></field>
<field name="company_id" ref="base.main_company"/>
<field name="value" eval="'I' + str(ref('app_product_sequence.internal_type_manufacture'))+'\n.'"/>
</record>
</data>
</odoo>

View File

@@ -15,7 +15,7 @@
# http://www.sunpop.cn/odoo10_developer_document_offline/
# description:
{
'name': 'App Product Internal Type,Auto Sequence, Auto Code(Variants Supported)',
'name': 'App Product Internal Type,Auto Sequence, Auto Code(Variants Supported), Auto Attributes',
'summary': 'Auto Internal Reference.',
"version": '10.0.2.2',
'category': 'Sales',
@@ -30,7 +30,7 @@
'currency': 'EUR',
'price': 98,
'description': u"""
App Product Auto Sequence, Auto Code(Variants Supported)
App Product Auto Sequence, Auto Code(Variants Supported), Auto Attributes
This module allows to associate a sequence to the product reference.<br/>
The reference (default code) is unique (SQL constraint) and required.<br/>
@@ -41,7 +41,8 @@
4.Define different product type, each product type use own rule of sequence.可自定义产品类型,不同产品类型使用不同编码规则。
5.Quick access in sale , inventory, system menu.可以在销售、库存、系统菜单中快速定义。
6.Multi language support.<br/>多语种支持。
7.Setup default Auto Sequence for each product category
7.Setup default Auto Sequence for each product category,自动设置每个产品目录使用的产品编码规则
8.Auto setup product attribute lik Sale/Purchase, Stockable/Consumable/Service, Stock Routes. 自动设置产品的销售/采购,可库存产品/服务/消耗品,购买/制造/按订单生成等库存路线
""",
'pre_init_hook': 'pre_init_hook',
'depends': [

View File

@@ -24,7 +24,7 @@ def pre_init_hook(cr):
:return: void
"""
cr.execute("UPDATE product_product "
"SET default_code = '!!DP!!' || id "
"SET default_code = '!!PR!!' || id "
"WHERE default_code IS NULL OR default_code = 'New';")
cr.execute("UPDATE product_template "

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Created on 2017-11-05
# Created on 2017-01-09
# author: 广州尚鹏http://www.sunpop.cn
# email: 300883@qq.com
# resource of Sunpop
@@ -24,7 +24,6 @@ class ProductProduct(models.Model):
default_code_index = fields.Integer('Internal Reference Index', readonly=True)
# todo: 检查数据,要保证数据唯一性
# 为免报错,不限制唯一性
_sql_constraints = [
('uniq_default_code',
'unique(default_code)',
@@ -63,7 +62,7 @@ class ProductProduct(models.Model):
# 有属性值了,自己是第一个规格
code_index = 1
vals['default_code_index'] = code_index
vals['default_code'] = code_stored + '-%03d'%(code_index)
vals['default_code'] = code_stored + '#%03d'%(code_index)
elif mylen == 1:
# 已存在1个当存在的1个有属性时要改已存在的product值
code_index = template.product_variant_ids[:1].default_code_index
@@ -71,24 +70,24 @@ class ProductProduct(models.Model):
if code_index == 0:
code_index = 1
template.product_variant_ids[:1].default_code_index = code_index
template.product_variant_ids[:1].default_code = code_stored + '-%03d'%(code_index)
template.product_variant_ids[:1].default_code = code_stored + '#%03d'%(code_index)
# 接着改当前操作的product值
code_index = code_index + 1
vals['default_code_index'] = code_index
vals['default_code'] = code_stored + '-%03d'%(code_index)
vals['default_code'] = code_stored + '#%03d'%(code_index)
elif mylen > 1:
# 找到最大的序号
variant_max = max(template.product_variant_ids,key=lambda x: x['default_code_index'])
code_index = variant_max['default_code_index'] + 1
vals['default_code_index'] = code_index
vals['default_code'] = code_stored + '-%03d'%(code_index)
vals['default_code'] = code_stored + '#%03d'%(code_index)
else:
# 当按模板
# 此条件常规不出现,但特殊项目会有
variant_max = max(template.product_variant_ids,key=lambda x: x['default_code_index'])
code_index = variant_max['default_code_index'] + 1
vals['default_code_index'] = code_index
vals['default_code'] = code_stored + '-%03d'%(code_index)
vals['default_code'] = code_stored + '#%03d'%(code_index)
else:
# create from product_product
# 默认使用制造成品的编码

View File

@@ -1,6 +1,6 @@
<section class="oe_container oe_dark">
<div class="oe_row oe_padded">
<h2 class="oe_slogan" style="color:#875A7B;">App Product Auto Sequence, Auto Code(Variants Supported)</h2>
<h2 class="oe_slogan" style="color:#875A7B;"> App Product Auto Sequence, Auto Code(Variants Supported), Auto Attributes</h2>
<div>
<p>
This module allows to associate a sequence to the product reference.<br/>
@@ -26,7 +26,16 @@
<li>
Multi language support.
</li>
<li>
Setup default Auto Sequence for each product category.
</li>
<li>
Auto setup product attribute lik Sale/Purchase, Stockable/Consumable/Service, Stock Routes.
</li>
</ul>
<div>
<img class="oe_picture oe_screenshot" src="set0.jpg">
</div>
<div>
<img class="oe_picture oe_screenshot" src="set1.jpg">
</div>
@@ -49,13 +58,13 @@
Sepcial for variants. add [-00?]<br/>
<ul>
<li>
Products with color[red]: M20171100001-001
Products with color[red]: M20171100001#001
</li>
<li>
Products with color[blue]: M20171100001-002
Products with color[blue]: M20171100001#002
</li>
<li>
Products with color[white]: M20171100001-003
Products with color[white]: M20171100001#003
</li>
</ul>
</p>

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB