diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index 330cb9e..16c9672 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -36,6 +36,18 @@ class BeesdooProduct(models.Model): ingredients = fields.Char(string="Ingredient") scale_label_info_1 = fields.Char(string="Scale lable info 1") scale_label_info_2 = fields.Char(string="Scale lable info 2") + scale_sale_unit = fields.Char(compute="_get_scale_sale_uom", string="Scale sale unit", store=True) + scale_category = fields.Many2one('beesdoo.scale.category', string="Scale Category") + scale_category_code = fields.Integer(related='scale_category.code', string="Scale category code", readonly=True, store=True) + + @api.depends('uom_id','uom_id.category_id','uom_id.category_id.type') + @api.multi + def _get_scale_sale_uom(self): + for product in self: + if product.uom_id.category_id.type == 'unit': + product.scale_sale_unit = 'F' + elif product.uom_id.category_id.type == 'weight': + product.scale_sale_unit = 'P' def _get_main_supplier_info(self): return self.seller_ids.sorted(key=lambda seller: seller.date_start, reverse=True) @@ -101,6 +113,16 @@ class BeesdooProduct(models.Model): if(len(suppliers) > 0): self.suggested_price = (suppliers[0].price * self.uom_po_id.factor)* (1 + suppliers[0].product_tmpl_id.categ_id.profit_margin / 100) +class BeesdooScaleCategory(models.Model): + _name = "beesdoo.scale.category" + + name = fields.Char(string="Scale name category") + code = fields.Integer(string="Category code") + + _sql_constraints = [ + ('code_scale_categ_uniq', 'unique (code)', 'The code of the scale category must be unique !') + ] + class BeesdooProductLabel(models.Model): _name = "beesdoo.product.label" @@ -125,3 +147,14 @@ class BeesdooProductSupplierInfo(models.Model): price = fields.Float('exVAT Price') +class BeesdooUOMCateg(models.Model): + _inherit = 'product.uom.categ' + + type = fields.Selection([('unit','Unit'), + ('weight','Weight'), + ('time','Time'), + ('distance','Distance'), + ('surface','Surface'), + ('volume','Volume'), + ('other','Other')],string='Category type',default='unit') + \ No newline at end of file diff --git a/beesdoo_product/security/ir.model.access.csv b/beesdoo_product/security/ir.model.access.csv index b68d1b1..1b5fb80 100644 --- a/beesdoo_product/security/ir.model.access.csv +++ b/beesdoo_product/security/ir.model.access.csv @@ -1,3 +1,5 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -beesdoo_product_label_read_all,beesdoo.product.label Read All,model_beesdoo_product_label,,1,0,0,0 -beesdoo_product_label_all_access_sale_manager,beesdoo.product.label All Access Sale Manager,model_beesdoo_product_label,base.group_sale_manager,1,1,1,1 +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +beesdoo_product_label_read_all,beesdoo.product.label Read All,model_beesdoo_product_label,,1,0,0,0 +beesdoo_product_label_all_access_sale_manager,beesdoo.product.label All Access Sale Manager,model_beesdoo_product_label,base.group_sale_manager,1,1,1,1 +beesdoo_scale_category_read_all,beesdoo.scale.category Read All,model_beesdoo_scale_category,,1,0,0,0 +beesdoo_scale_categoryl_all_access_sale_manager,beesdoo.scale.category All Access Sale Manager,model_beesdoo_scale_category,base.group_sale_manager,1,1,1,0 diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index 5c0ae0e..010d687 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -53,12 +53,19 @@ - - - - - - + + + + + + + + + + + + + @@ -134,4 +141,48 @@ + + + product.uom.categ.form + product.uom.categ + + + + + + + + + + beesdoo.scale.category.list + beesdoo.scale.category + + + + + + + + + + beesdoo.scale.category.form + beesdoo.scale.category + +
+ + + + +
+
+
+ + + Scale categories + beesdoo.scale.category + tree,form + + +