summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/x_manufactures.py
blob: 9e214d928ed4929d77cc86336754df9912293eb6 (plain)
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')

    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