from odoo import fields, models class ProductTemplate(models.Model): _inherit = "product.template" x_studio_field_tGhJR = fields.Many2many('x_product_tags', string="Product Tags") x_manufacture = fields.Many2one( comodel_name="x_manufactures", string="Manufactures" ) x_model_product = fields.Char(string="Model Produk") x_product_manufacture = fields.Many2one( comodel_name="x_manufactures", string="Manufacture" ) x_lazada = fields.Text(string="Lazada") x_tokopedia = fields.Text(string="Tokopedia") web_price = fields.Float( 'Web Price', compute='_compute_web_price', digits='Product Price', inverse='_set_product_lst_price', help="Web Price with pricelist_id = 1") have_promotion_program = fields.Boolean('Have Promotion Program', help="Punya promotion program gak?") product_rating = fields.Float('Product Rating', help="Digunakan untuk sorting product di website") def _compute_web_price(self): for template in self: product = self.env['product.product'].search([('product_tmpl_id', '=', template.id)],limit=1) product_pricelist_item = self.env['product.pricelist.item'].search([('pricelist_id', '=', 1),('product_id', '=', product.id)],limit=1) template.web_price = product_pricelist_item.fixed_price def _have_promotion_program(self): for template in self: domain = [ ('rule_products_domain', 'ilike', template.x_manufacture.x_name), ('active', '=', True) ] coupon_program = self.env['coupon.program'].search(domain, limit=1) if coupon_program: template.have_promotion_program = True else: template.have_promotion_program = False def _calculate_rating_product(self): for product in self: rate = 0 if product.web_price: rate += 1 if product.have_promotion_program: rate += 1 if product.image_1024: rate += 1 class ProductProduct(models.Model): _inherit = "product.product" web_price = fields.Float( 'Web Price', compute='_compute_web_price', digits='Product Price', inverse='_set_product_lst_price', help="Web Price with pricelist_id = 1") qty_stock_vendor = fields.Float( 'Qty Stock Vendor', compute='_compute_stock_vendor', help="Stock Vendor") def _compute_web_price(self): for product in self: product_pricelist_item = self.env['product.pricelist.item'].search([('pricelist_id', '=', 1),('product_id', '=', product.id)],limit=1) product.web_price = product_pricelist_item.fixed_price def _compute_stock_vendor(self): for product in self: stock_vendor = self.env['stock.vendor'].search([('product_variant_id', '=', product.id)],limit=1) product.qty_stock_vendor = stock_vendor.quantity+product.qty_available