From ea6768036015fdbfbc09e3b837735e8d21b9e7ae Mon Sep 17 00:00:00 2001 From: gregoire Date: Sun, 31 Jan 2016 20:18:42 +0100 Subject: [PATCH 1/8] [ADD] Remove invoice policy field from product view --- beesdoo_simplified_view/__init__.py | 1 + beesdoo_simplified_view/__openerp__.py | 24 ++++++++++++++++++++++++ beesdoo_simplified_view/views/views.xml | 16 ++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 beesdoo_simplified_view/__init__.py create mode 100644 beesdoo_simplified_view/__openerp__.py create mode 100644 beesdoo_simplified_view/views/views.xml diff --git a/beesdoo_simplified_view/__init__.py b/beesdoo_simplified_view/__init__.py new file mode 100644 index 0000000..40a96af --- /dev/null +++ b/beesdoo_simplified_view/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- diff --git a/beesdoo_simplified_view/__openerp__.py b/beesdoo_simplified_view/__openerp__.py new file mode 100644 index 0000000..59fdda8 --- /dev/null +++ b/beesdoo_simplified_view/__openerp__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +{ + 'name': "beesdoo_simplified_view", + + 'description': """ + Long description of module's purpose + """, + + # Categories can be used to filter modules in modules listing + # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml + # for the full list + 'category': 'Sales', + 'version': '0.1', + + # any module necessary for this one to work correctly + 'depends': ['base','sale'], + + # always loaded + 'data': [ + # 'security/ir.model.access.csv', + 'views/views.xml', + ], + +} diff --git a/beesdoo_simplified_view/views/views.xml b/beesdoo_simplified_view/views/views.xml new file mode 100644 index 0000000..e629dc2 --- /dev/null +++ b/beesdoo_simplified_view/views/views.xml @@ -0,0 +1,16 @@ + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + + \ No newline at end of file From c707720e01c299c62d4a2f6711011a392b0ba134 Mon Sep 17 00:00:00 2001 From: gregoire Date: Sat, 13 Feb 2016 14:25:23 +0100 Subject: [PATCH 2/8] [ADD] Remove fields of product --- beesdoo_simplified_view/__openerp__.py | 2 +- beesdoo_simplified_view/views/views.xml | 92 +++++++++++++++++++++++-- 2 files changed, 89 insertions(+), 5 deletions(-) diff --git a/beesdoo_simplified_view/__openerp__.py b/beesdoo_simplified_view/__openerp__.py index 59fdda8..0806f00 100644 --- a/beesdoo_simplified_view/__openerp__.py +++ b/beesdoo_simplified_view/__openerp__.py @@ -13,7 +13,7 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['base','sale'], + 'depends': ['base', 'sale', 'purchase', ], # always loaded 'data': [ diff --git a/beesdoo_simplified_view/views/views.xml b/beesdoo_simplified_view/views/views.xml index e629dc2..0ca14c4 100644 --- a/beesdoo_simplified_view/views/views.xml +++ b/beesdoo_simplified_view/views/views.xml @@ -1,16 +1,100 @@ - - + beesdoo_simplified_view list product.template - + + + + + + beesdoo_simplified_view list + product.template + + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + beesdoo_simplified_view list + product.template + + + + + + + + + + + + + + + + - \ No newline at end of file + From eadee14bd273bb55e963819a9bd9985085869424 Mon Sep 17 00:00:00 2001 From: gregoire Date: Tue, 8 Mar 2016 21:51:32 +0100 Subject: [PATCH 3/8] Add total and total_with_vat fields --- beesdoo_product/models/beesdoo_product.py | 54 +++++++++-- beesdoo_product/views/beesdoo_product.xml | 110 ++++++++++++++++------ 2 files changed, 128 insertions(+), 36 deletions(-) diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index ad95630..b0fd8be 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -1,18 +1,54 @@ - # -*- coding: utf-8 -*- +# -*- coding: utf-8 -*- from openerp import models, fields, api + class BeesdooProduct(models.Model): - _inherit = "product.template" + _inherit = 'product.template' + + eco_label = fields.Many2one('beesdoo.product.label', domain=[('type', '=', 'eco')]) + local_label = fields.Many2one('beesdoo.product.label', domain=[('type', '=', 'local')]) + fair_label = fields.Many2one('beesdoo.product.label', domain=[('type', '=', 'fair')]) + origin_label = fields.Many2one('beesdoo.product.label', domain=[('type', '=', 'delivery')]) + + display_unit = fields.Char() + default_reference_unit = fields.Char() + display_weight = fields.Integer(compute='get_display_weight') + + total = fields.Float(compute='get_total') + total_with_vat = fields.Float(compute='get_total_with_vat') + + def get_display_weight(self): + pass + + + + def get_total(self): + price_ht = self.env['product.pricelist'].search([])[0].price_get(self.id, 1)[1] + self.total = price_ht + + # grand_total_by_unit = fields.Float(compute='get_grand_total_by_unit') + # + # grand_total = fields.Float(compute='get_grand_total') + # + # def get_grand_total(self): + # self.grand_total = self.env['sale.order.line'] * self.price + # + # def get_grand_total_by_unit(self): + # self.grand_total_by_unit = self.grand_total * self.unit_price + # product.supplierinfo + + def get_total_with_vat(self): + tax_amount_sum = 0.0 + for tax in self.taxes_id: + tax_amount_sum = tax_amount_sum + tax.amount + self.total_with_vat = self.total * (100.0 + tax_amount_sum) / 100 + - eco_label = fields.Many2one('beesdoo.product.label', domain = [('type', '=', 'eco')]) - local_label = fields.Many2one('beesdoo.product.label', domain = [('type', '=', 'local')]) - fair_label = fields.Many2one('beesdoo.product.label', domain = [('type', '=', 'fair')]) - origin_label = fields.Many2one('beesdoo.product.label', domain = [('type', '=', 'delivery')]) class BeesdooProductLabel(models.Model): - _name = "beesdoo.product.label" + _name = 'beesdoo.product.label' name = fields.Char() - type = fields.Selection([('eco', 'Écologique'), ('local', 'Local'), ('fair', 'Équitable'), ('delivery', 'Distribution')]) + type = fields.Selection( + [('eco', 'Écologique'), ('local', 'Local'), ('fair', 'Équitable'), ('delivery', 'Distribution')]) color_code = fields.Char() - diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index 21b329b..a740a2f 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -1,30 +1,86 @@ - - bees.product.template.form - product.template - - - - - - - - - - - - - bees.product.label.form - beesdoo.product.label - -
- - - - - -
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bees.product + product.template + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file From 4809e8a0bd399392319b6e35099ecded6a47be7e Mon Sep 17 00:00:00 2001 From: gregoire Date: Mon, 21 Mar 2016 22:19:49 +0100 Subject: [PATCH 4/8] add display_weight with an if on the compute method --- beesdoo_product/models/beesdoo_product.py | 26 +++++++---------------- beesdoo_product/views/beesdoo_product.xml | 8 +++---- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index b0fd8be..c613da4 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -10,33 +10,24 @@ class BeesdooProduct(models.Model): fair_label = fields.Many2one('beesdoo.product.label', domain=[('type', '=', 'fair')]) origin_label = fields.Many2one('beesdoo.product.label', domain=[('type', '=', 'delivery')]) - display_unit = fields.Char() - default_reference_unit = fields.Char() - display_weight = fields.Integer(compute='get_display_weight') + display_unit = fields.Many2one('product.uom', required=True) + default_reference_unit = fields.Many2one('product.uom', required=True) + + display_weight = fields.Float(compute='get_display_weight') total = fields.Float(compute='get_total') total_with_vat = fields.Float(compute='get_total_with_vat') + @api.one + @api.depends('weight', 'display_unit') def get_display_weight(self): - pass - - + if self.display_unit: + self.display_weight = self.weight / self.display_unit.factor def get_total(self): price_ht = self.env['product.pricelist'].search([])[0].price_get(self.id, 1)[1] self.total = price_ht - # grand_total_by_unit = fields.Float(compute='get_grand_total_by_unit') - # - # grand_total = fields.Float(compute='get_grand_total') - # - # def get_grand_total(self): - # self.grand_total = self.env['sale.order.line'] * self.price - # - # def get_grand_total_by_unit(self): - # self.grand_total_by_unit = self.grand_total * self.unit_price - # product.supplierinfo - def get_total_with_vat(self): tax_amount_sum = 0.0 for tax in self.taxes_id: @@ -44,7 +35,6 @@ class BeesdooProduct(models.Model): self.total_with_vat = self.total * (100.0 + tax_amount_sum) / 100 - class BeesdooProductLabel(models.Model): _name = 'beesdoo.product.label' diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index a740a2f..a99c512 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -52,17 +52,17 @@ - + + + + - - - From 3bb671ed525c0d2b86f62ce2807759c65f74b8a7 Mon Sep 17 00:00:00 2001 From: gregoire Date: Sat, 9 Apr 2016 13:21:29 +0200 Subject: [PATCH 5/8] add a product.supplierinfo field and remove useless files --- beesdoo_product/views/beesdoo_product.xml | 13 +++ beesdoo_simplified_view/__init__.py | 1 - beesdoo_simplified_view/__openerp__.py | 24 ------ beesdoo_simplified_view/views/views.xml | 100 ---------------------- 4 files changed, 13 insertions(+), 125 deletions(-) delete mode 100644 beesdoo_simplified_view/__init__.py delete mode 100644 beesdoo_simplified_view/__openerp__.py delete mode 100644 beesdoo_simplified_view/views/views.xml diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index a99c512..26e2222 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -68,6 +68,19 @@ + + bees.product + product.supplierinfo + + + + + + + + + + diff --git a/beesdoo_simplified_view/__init__.py b/beesdoo_simplified_view/__init__.py deleted file mode 100644 index 40a96af..0000000 --- a/beesdoo_simplified_view/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# -*- coding: utf-8 -*- diff --git a/beesdoo_simplified_view/__openerp__.py b/beesdoo_simplified_view/__openerp__.py deleted file mode 100644 index 0806f00..0000000 --- a/beesdoo_simplified_view/__openerp__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': "beesdoo_simplified_view", - - 'description': """ - Long description of module's purpose - """, - - # Categories can be used to filter modules in modules listing - # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml - # for the full list - 'category': 'Sales', - 'version': '0.1', - - # any module necessary for this one to work correctly - 'depends': ['base', 'sale', 'purchase', ], - - # always loaded - 'data': [ - # 'security/ir.model.access.csv', - 'views/views.xml', - ], - -} diff --git a/beesdoo_simplified_view/views/views.xml b/beesdoo_simplified_view/views/views.xml deleted file mode 100644 index 0ca14c4..0000000 --- a/beesdoo_simplified_view/views/views.xml +++ /dev/null @@ -1,100 +0,0 @@ - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - beesdoo_simplified_view list - product.template - - - - - - - - - - - - - - - - - - - From f439d8dcc78ae67ddd82661ee2698391aaa3348e Mon Sep 17 00:00:00 2001 From: gregoire Date: Sat, 16 Apr 2016 19:09:20 +0200 Subject: [PATCH 6/8] add total by unit and clean xml --- beesdoo_product/models/beesdoo_product.py | 14 +++- beesdoo_product/views/beesdoo_product.xml | 78 +---------------------- 2 files changed, 15 insertions(+), 77 deletions(-) diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index c613da4..0f851c1 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -18,22 +18,32 @@ class BeesdooProduct(models.Model): total = fields.Float(compute='get_total') total_with_vat = fields.Float(compute='get_total_with_vat') + total_with_vat_by_unit = fields.Float(compute='get_total_with_vat_by_unit') + @api.one @api.depends('weight', 'display_unit') def get_display_weight(self): if self.display_unit: self.display_weight = self.weight / self.display_unit.factor + @api.one def get_total(self): price_ht = self.env['product.pricelist'].search([])[0].price_get(self.id, 1)[1] self.total = price_ht + @api.one def get_total_with_vat(self): tax_amount_sum = 0.0 - for tax in self.taxes_id: - tax_amount_sum = tax_amount_sum + tax.amount + if hasattr(self, 'taxes_id'): + for tax in self.taxes_id: + tax_amount_sum = tax_amount_sum + tax.amount self.total_with_vat = self.total * (100.0 + tax_amount_sum) / 100 + @api.one + def get_total_with_vat_by_unit(self): + if self.display_weight > 0: + self.total_with_vat_by_unit = self.total_with_vat/self.display_weight + class BeesdooProductLabel(models.Model): _name = 'beesdoo.product.label' diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index 26e2222..f963803 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -1,63 +1,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bees.product product.template - + - + + - @@ -68,32 +24,4 @@ - - bees.product - product.supplierinfo - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 01174cd880c85b6e6068b5504a22f6a2a37e327c Mon Sep 17 00:00:00 2001 From: gregoire Date: Thu, 12 May 2016 22:43:44 +0200 Subject: [PATCH 7/8] remove total base on pricelist and use list_price instead --- beesdoo_product/models/beesdoo_product.py | 8 +------- beesdoo_product/views/beesdoo_product.xml | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index 0f851c1..f83ddc2 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -15,7 +15,6 @@ class BeesdooProduct(models.Model): display_weight = fields.Float(compute='get_display_weight') - total = fields.Float(compute='get_total') total_with_vat = fields.Float(compute='get_total_with_vat') total_with_vat_by_unit = fields.Float(compute='get_total_with_vat_by_unit') @@ -26,18 +25,13 @@ class BeesdooProduct(models.Model): if self.display_unit: self.display_weight = self.weight / self.display_unit.factor - @api.one - def get_total(self): - price_ht = self.env['product.pricelist'].search([])[0].price_get(self.id, 1)[1] - self.total = price_ht - @api.one def get_total_with_vat(self): tax_amount_sum = 0.0 if hasattr(self, 'taxes_id'): for tax in self.taxes_id: tax_amount_sum = tax_amount_sum + tax.amount - self.total_with_vat = self.total * (100.0 + tax_amount_sum) / 100 + self.total_with_vat = self.list_price * (100.0 + tax_amount_sum) / 100 @api.one def get_total_with_vat_by_unit(self): diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index f963803..980ffa0 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -9,9 +9,9 @@ + - From a328bb9febe69fc58eb7c5a24edb9df294c0878c Mon Sep 17 00:00:00 2001 From: gregoire Date: Sat, 21 May 2016 12:56:33 +0200 Subject: [PATCH 8/8] fix display unit, add seller id, fix xml --- beesdoo_product/models/beesdoo_product.py | 14 ++++++++-- beesdoo_product/views/beesdoo_product.xml | 33 ++++++++++++++--------- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index f83ddc2..202552d 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -19,11 +19,14 @@ class BeesdooProduct(models.Model): total_with_vat_by_unit = fields.Float(compute='get_total_with_vat_by_unit') + main_seller_id = fields.Many2one('res.partner', compute='_compute_main_seller_id', store=True) + + @api.one @api.depends('weight', 'display_unit') def get_display_weight(self): if self.display_unit: - self.display_weight = self.weight / self.display_unit.factor + self.display_weight = self.weight * self.display_unit.factor @api.one def get_total_with_vat(self): @@ -36,7 +39,14 @@ class BeesdooProduct(models.Model): @api.one def get_total_with_vat_by_unit(self): if self.display_weight > 0: - self.total_with_vat_by_unit = self.total_with_vat/self.display_weight + self.total_with_vat_by_unit = self.total_with_vat / self.weight + + @api.one + @api.depends('seller_ids', 'seller_ids.date_start') + def _compute_main_seller_id(self): + # Calcule le vendeur associé qui a la date de début la plus récente et plus petite qu’aujourd’hui + sellers_ids = self.seller_ids.sorted(key=lambda seller: seller.date_start, reverse=True) + self.main_seller_id = sellers_ids and sellers_ids[0].name or False class BeesdooProductLabel(models.Model): diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index 980ffa0..604aec3 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -7,21 +7,28 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - \ No newline at end of file +