From c6f0044d7829c0d91971e2157d3ba0d588ec3b64 Mon Sep 17 00:00:00 2001 From: ivan deng Date: Tue, 9 Jan 2018 23:39:07 +0800 Subject: [PATCH] update app_seq --- .../controllers/product_sequence.xml | 69 ++++++++++++++++++ app_product_type_sequence/__openerp__.py | 7 +- app_product_type_sequence/hooks.py | 2 +- .../models/product_product.py | 13 ++-- .../static/description/index.html | 17 ++++- .../static/description/set0.jpg | Bin 0 -> 38263 bytes 6 files changed, 93 insertions(+), 15 deletions(-) create mode 100644 app_product_sequence/controllers/product_sequence.xml create mode 100644 app_product_type_sequence/static/description/set0.jpg diff --git a/app_product_sequence/controllers/product_sequence.xml b/app_product_sequence/controllers/product_sequence.xml new file mode 100644 index 00000000..7955665e --- /dev/null +++ b/app_product_sequence/controllers/product_sequence.xml @@ -0,0 +1,69 @@ + + + + + + + Sequence for All Products + product.product + P%(y)s%(month)s + 5 + + True + + + + Sequence for Manufactured Product + product.product + D%(y)s%(month)s + 5 + + True + + + + Sequence for Components Product + product.product + C%(y)s%(month)s + 5 + + True + + + + Sequence for Sourced Product + product.product + S%(y)s%(month)s + 5 + + True + + + + + Manufactured Product + Set prefix as "D" in link sequence + + + + Sourced Product + Set prefix as "S" in link sequence + + + + Components Product + Set prefix as "C" in link sequence + + + + + + internal_type + product.template + default + + + + + + diff --git a/app_product_type_sequence/__openerp__.py b/app_product_type_sequence/__openerp__.py index b6abe991..738e996f 100644 --- a/app_product_type_sequence/__openerp__.py +++ b/app_product_type_sequence/__openerp__.py @@ -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.
The reference (default code) is unique (SQL constraint) and required.
@@ -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.
多语种支持。 - 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': [ diff --git a/app_product_type_sequence/hooks.py b/app_product_type_sequence/hooks.py index a4d9d2f1..4a0ea85d 100644 --- a/app_product_type_sequence/hooks.py +++ b/app_product_type_sequence/hooks.py @@ -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 " diff --git a/app_product_type_sequence/models/product_product.py b/app_product_type_sequence/models/product_product.py index 43aec35b..23f820c4 100644 --- a/app_product_type_sequence/models/product_product.py +++ b/app_product_type_sequence/models/product_product.py @@ -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 # 默认使用制造成品的编码 diff --git a/app_product_type_sequence/static/description/index.html b/app_product_type_sequence/static/description/index.html index 4ac12cc4..ecb4de17 100644 --- a/app_product_type_sequence/static/description/index.html +++ b/app_product_type_sequence/static/description/index.html @@ -1,6 +1,6 @@
-

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.
@@ -26,7 +26,16 @@

  • Multi language support.
  • +
  • + Setup default Auto Sequence for each product category. +
  • +
  • + Auto setup product attribute lik Sale/Purchase, Stockable/Consumable/Service, Stock Routes. +
  • +
    + +
    @@ -49,13 +58,13 @@ Sepcial for variants. add [-00?]
    • - Products with color[red]: M20171100001-001 + Products with color[red]: M20171100001#001
    • - Products with color[blue]: M20171100001-002 + Products with color[blue]: M20171100001#002
    • - Products with color[white]: M20171100001-003 + Products with color[white]: M20171100001#003

    diff --git a/app_product_type_sequence/static/description/set0.jpg b/app_product_type_sequence/static/description/set0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cf3465213d54a03a93911531dc8bdc797e0b82f GIT binary patch literal 38263 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 mgsNWI#=m^Eh0eP){VogI!;c3?1+sm=j=hNtCA{