1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
from odoo import models, fields, api
import logging
_logger = logging.getLogger(__name__)
class XManufactures(models.Model):
_name = 'x_manufactures'
_description = "Manufactures"
_rec_name = "x_name"
x_name = fields.Char(string="Name")
x_description = fields.Html(string="Description")
x_logo_manufacture = fields.Binary(string="Logo Manufacture")
x_logo_manufacture_128 = fields.Image("Image 128", related="x_logo_manufacture", max_width=128, max_height=128, store=True)
image_promotion_1 = fields.Binary(string="Promotion Image 1")
image_promotion_2 = fields.Binary(string="Promotion Image 2")
x_manufacture_level = fields.Selection([
('prioritas', 'Prioritas'),
('gold', 'Gold'),
('silver', 'Silver')
], string="Manufacture Level")
x_manufacture_product = fields.One2many(
comodel_name="product.template",
inverse_name="x_manufacture",
string="Relasi Produk"
)
x_manufacture_service_center = fields.Many2many("res.partner", string="Service Center")
x_manufactures_banners = fields.One2many(
comodel_name="x_banner.banner",
inverse_name="x_relasi_manufacture",
string="Relasi Manufacture Banner"
)
x_negara_asal = fields.Char(string="Negara Asal")
x_produk_aksesoris_sparepart = fields.Selection([
('produk', 'Produk'),
('aksesoris', 'Aksesoris'),
('sparepart', 'Spare Part')
], string="Jenis Produk")
x_short_desc = fields.Text(string="Short Description")
product_tmpl_ids = fields.One2many('product.template', 'x_manufacture', string='Product Templates')
cache_reset_status = fields.Selection([
('reset', 'Reset'),
('done', 'Done')
], string="Cache Reset")
sequence = fields.Integer(string='Sequence', help='Urutan tampil di homepage jika show as new product')
show_as_new_product = fields.Boolean(string='Show as New Product', help='Centang jika ingin ditammpilkan di website sebagai segment Produk Baru')
parent_id = fields.Many2one('x_manufactures', string='Parent', help='Parent Brand tersebut')
category_ids = fields.Many2many('product.public.category', string='Category', help='Brand tsb memiliki Category apa saja')
vendor_ids = fields.Many2many('res.partner', string='Vendor', compute='_compute_vendor_ids')
# user_id = fields.Many2one('res.users', string='Responsible', domain="['|'('id', '=', 19), ('id', '=', 6)]", help="Siapa yang bertanggung jawab")
user_id = fields.Many2one('res.users', string='Responsible', help="Siapa yang bertanggung jawab")
override_vendor_id = fields.Many2one('res.partner', string='Override Vendor')
cashback_percent = fields.Float(string='Cashback Percent', default=0)
def _compute_vendor_ids(self):
for manufacture in self:
vendor_ids = []
brand_vendors = self.env['brand.vendor'].search([('x_manufacture_id', '=', manufacture.id)], order='priority')
for vendor in brand_vendors:
vendor_ids.append(vendor.partner_id.id)
manufacture.vendor_ids = vendor_ids
def cache_reset(self):
manufactures = self.env['x_manufactures'].search([
('cache_reset_status', '=', 'reset'),
])
for manufacture in manufactures:
templates = self.env['product.template'].search([
('x_manufacture', '=', manufacture.id),
('solr_flag', '=', 1),
])
for template in templates:
template.solr_flag = 2
_logger.info("Reset Solr Flag template to 2 %s" % template.id)
for variant in template.product_variant_ids:
variant.solr_flag = 2
_logger.info("Reset Solr Flag variant to 2 %s" % variant.id)
manufacture.cache_reset_status = 'done'
@api.onchange('x_name','image_promotion_1','image_promotion_2')
def update_solr_flag(self):
for manufacture in self:
templates = self.env['product.template'].search([
('x_manufacture', '=', manufacture.id)
])
for template in templates:
if template.solr_flag == 1:
template.solr_flag = 2
|