diff --git a/app_base/__manifest__.py b/app_base/__manifest__.py index 7fad9a68..1de93ba1 100644 --- a/app_base/__manifest__.py +++ b/app_base/__manifest__.py @@ -32,14 +32,14 @@ ############################################################################## { - 'name': "Base Pro, 基础增强", - 'version': '13.19.10.16', + 'name': "Partner set customer vendor", + 'version': '13.19.10.28', 'author': 'Sunpop.cn', 'category': 'Base', 'website': 'https://www.sunpop.cn', 'license': 'LGPL-3', 'sequence': 2, - 'price': 0.00, + 'price': 18.00, 'currency': 'EUR', 'images': ['static/description/banner.png'], 'depends': [ @@ -47,12 +47,13 @@ 'purchase', ], 'summary': """ + Add customer, vendor (supplier) field to partner model and views. + Set and view partner type: customer or vendor. Odoo App of Sunpop.cn """, 'description': """ - Support Odoo 13,12, 11, Enterprise and Community Edition - 1. Add customer, supplier field to partner - 2. + Support Odoo 13, Enterprise and Community Edition + 1. Add customer, vendor field to partner 3. Multi-language Support. 4. Multi-Company Support. 5. Support Odoo 13,12, 11, Enterprise and Community Edition diff --git a/app_base/hooks.py b/app_base/hooks.py index 3ba52cbf..86352622 100644 --- a/app_base/hooks.py +++ b/app_base/hooks.py @@ -23,6 +23,14 @@ def pre_init_hook(cr): # cr.execute("") def post_init_hook(cr, registry): + try: + # + sql = "UPDATE res_partner SET customer = TRUE WHERE customer_rank >= 1;" + cr.execute(sql) + sql = "UPDATE res_partner SET supplier = TRUE WHERE supplier_rank >= 1" + cr.execute(sql) + except Exception as e: + pass pass # cr.execute("") diff --git a/app_base/models/res_partner.py b/app_base/models/res_partner.py index d65a5aa9..898dfc64 100644 --- a/app_base/models/res_partner.py +++ b/app_base/models/res_partner.py @@ -24,7 +24,41 @@ from odoo.tools import pycompat class Partner(models.Model): _inherit = 'res.partner' - customer = fields.Boolean(string='Is a Customer', default=True, + + def _get_default_customer(self): + search_partner_mode = self.env.context.get('res_partner_search_mode') + is_customer = search_partner_mode == 'customer' + if is_customer and not self.env.context.get('default_customer'): + return is_customer + else: + return None + + def _get_default_supplier(self): + search_partner_mode = self.env.context.get('res_partner_search_mode') + is_supplier = search_partner_mode == 'supplier' + if is_supplier and not self.env.context.get('default_supplier'): + return is_supplier + else: + return None + + customer = fields.Boolean(string='Is a Customer', default=_get_default_customer, inverse='_set_customer', help="Check this box if this contact is a customer. It can be selected in sales orders.") - supplier = fields.Boolean(string='Is a Vendor', + supplier = fields.Boolean(string='Is a Vendor', default=_get_default_supplier, inverse='_set_supplier', help="Check this box if this contact is a vendor. It can be selected in purchase orders.") + + def _set_customer(self): + for rec in self: + if rec.customer: + if rec.customer_rank < 1 or not rec.customer_rank: + rec.customer_rank = 1 + else: + rec.customer_rank = 0 + + def _set_supplier(self): + for rec in self: + if rec.supplier: + if rec.supplier_rank < 1 or not rec.supplier_rank: + rec.supplier_rank = 1 + else: + rec.supplier_rank = 0 + diff --git a/app_base/static/description/demo1.jpg b/app_base/static/description/demo1.jpg new file mode 100644 index 00000000..696f76f5 Binary files /dev/null and b/app_base/static/description/demo1.jpg differ diff --git a/app_base/static/description/index.html b/app_base/static/description/index.html index 3acdf658..32449166 100644 --- a/app_base/static/description/index.html +++ b/app_base/static/description/index.html @@ -1,10 +1,10 @@
-

-

+

Partner set customer vendor

+

Set and view partner type: customer or vendor.

-

Lastest update: v12.19.04.28

+

Lastest update: v13.19.10.28

@@ -14,19 +14,11 @@
  • - Put key function here. + Add customer, vendor field to partner model and views. Like odoo 12.
  • - 3. Multi-language Support. -
  • -
  • - - 4. Multi-Company Support. -
  • -
  • - - 5. Support Odoo 13,12, 11, Enterprise and Community Edition. + Set and view partner type: customer or supplier.
@@ -38,10 +30,10 @@
-

So Easy to navigator and search any data.

+

So Easy to set and show customer or vendor.

- +
diff --git a/app_base_chinese/__manifest__.py b/app_base_chinese/__manifest__.py index 1abb290c..e07e67d9 100644 --- a/app_base_chinese/__manifest__.py +++ b/app_base_chinese/__manifest__.py @@ -18,12 +18,14 @@ { 'name': "App base chinese,中国化基本模块增强", - 'version': '13.19.05.17', + 'version': '13.19.10.28', 'author': 'Sunpop.cn', 'category': 'Base', 'website': 'https://www.sunpop.cn', 'license': 'LGPL-3', 'sequence': 2, + 'price': 18.00, + 'currency': 'EUR', 'summary': """ Chinese enhance. Out of the box use in china. Set all chinese default value. @@ -46,6 +48,7 @@ 'pre_init_hook': 'pre_init_hook', 'post_init_hook': 'post_init_hook', 'depends': [ + 'app_base', 'stock', 'l10n_cn' ], diff --git a/app_base_chinese/data/ir_sequence_data.xml b/app_base_chinese/data/ir_sequence_data.xml index 015b7209..20ef70f3 100644 --- a/app_base_chinese/data/ir_sequence_data.xml +++ b/app_base_chinese/data/ir_sequence_data.xml @@ -7,7 +7,6 @@ product.category.seq.normal CAT 4 - True diff --git a/app_base_chinese/demo/res_partner_demo.yml b/app_base_chinese/demo/res_partner_demo.yml deleted file mode 100644 index 9fd892db..00000000 --- a/app_base_chinese/demo/res_partner_demo.yml +++ /dev/null @@ -1,128 +0,0 @@ -- - !record {model: 'res.partner', id: base.res_partner_address_3}: - name: Thomas Passot - parent_id: base.res_partner_2 - function: Functional Consultant - email: thomas.passot@agrolait.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_4}: - name: Michel Fletcher - parent_id: base.res_partner_2 - function: Analyst - email: michel.fletcher@agrolait.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_5}: - name: Chao Wang - parent_id: base.res_partner_3 - function: Marketing Manager - email: chao.wang@chinaexport.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_10}: - name: David Simpson - parent_id: base.res_partner_3 - function: Senior Consultant - email: david.simpson@epic.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_11}: - name: John M. Brown - parent_id: base.res_partner_3 - function: Director - email: john.brown@epic.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_13}: - name: Charlie Bernard - parent_id: base.res_partner_4 - function: Senior Associate - email: charlie.bernard@wealthyandsons.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_14}: - name: Jessica Dupont - parent_id: base.res_partner_4 - function: Analyst - email: jessica.dupont@wealthyandsons.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_15}: - name: Phillipp Miller - parent_id: base.res_partner_12 - function: Creative Director - email: phillipp.miller@mediapole.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_16}: - name: Ayaan Agarwal - parent_id: base.res_partner_12 - function: Director - email: ayaan.agarwal@bestdesigners.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_17}: - name: Daniel Jackson - parent_id: base.res_partner_10 - function: Managing Partner - email: daniel.jackson@jackson.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_18}: - name: William Thomas - parent_id: base.res_partner_10 - function: Senior Consultant - email: william.jackson@jackson.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_22}: - name: Laith Jubair - parent_id: base.res_partner_2 - function: Director - email: laith.jubair@axelor.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_24}: - name: Robert Anderson - parent_id: base.res_partner_4 - function: System Analyst - email: robert.anderson@chamberworks.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_25}: - name: Jacob Taylor - parent_id: base.res_partner_3 - function: Order Clerk - email: jacob.taylor@millennium.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_28}: - name: Benjamin Flores - parent_id: base.res_partner_12 - function: Business Executive - email: benjamin.flores@nebula.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_30}: - name: Lucas Jones - parent_id: base.res_partner_18 - function: Functional Consultant - email: lucas.jones@thinkbig.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_32}: - name: Robin Smith - parent_id: base.res_partner_4 - function: Sales Manager - email: robin.smith@globalsolutions.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_33}: - name: Morgan Rose - parent_id: base.res_partner_4 - function: Financial Manager - email: morgan.rose@globalsolutions.example.com -- - !record {model: 'res.partner', id: base.res_partner_address_34}: - name: Kevin Clarke - parent_id: base.res_partner_4 - function: Knowledge Manager - email: kevin.clarke@globalsolutions.example.com -- - !record {model: 'res.partner', id: base.res_partner_main1}: - name: Mark Davis - customer: False - parent_id: base.main_partner - function: Chief Executive Officer (CEO) - email: mark.davis@yourcompany.example.com -- - !record {model: 'res.partner', id: base.res_partner_main2}: - name: Roger Scott - customer: False - parent_id: base.main_partner - function: Chief Operations Officer (COO) - email: roger.scott@yourcompany.example.com diff --git a/app_base_chinese/views/res_partner_views.xml b/app_base_chinese/views/res_partner_views.xml index 331164ce..ab243db5 100644 --- a/app_base_chinese/views/res_partner_views.xml +++ b/app_base_chinese/views/res_partner_views.xml @@ -32,14 +32,6 @@ - - - - {'default_parent_id': active_id, 'default_street': street, 'default_street2': street2, 'default_city': city, 'default_state_id': - state_id, 'default_zip': zip, 'default_country_id': country_id, 'default_supplier': 0, 'default_customer': 0, - 'default_lang': lang,} - - {'invisible': [('is_company','!=', True)]}