summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/res_partner.py
blob: 5a62596d2e3cb80cbb67a56850af08a841a2ef56 (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
from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError

class GroupPartner(models.Model):
    _name = 'group.partner'

    name = fields.Char(string='Name')

class ResPartner(models.Model):
    _inherit = 'res.partner'

    reference_number = fields.Char(string="Reference Number")
    company_type_id = fields.Many2one('res.partner.company_type', string='Company Type')
    custom_pricelist_id = fields.Many2one('product.pricelist', string='Price Matrix')
    group_partner_id = fields.Many2one('group.partner', string='Group Partner')
    customer_type = fields.Selection([
        ('pkp', 'PKP'),
        ('nonpkp', 'Non PKP')
    ])
    sppkp = fields.Char(string="SPPKP")
    counter = fields.Integer(string="Counter", default=0)
    leadtime = fields.Integer(string="Leadtime", default=0)
    digital_invoice_tax = fields.Boolean(string="Digital Invoice & Faktur Pajak")
    is_potential = fields.Boolean(string='Potential')
    pakta_integritas = fields.Boolean(string='Pakta Integritas')
    
    use_so_approval = fields.Boolean(string='Use SO Approval')
    use_only_ready_stock = fields.Boolean(string='Use Only Ready Stock')
    web_role = fields.Selection([
        ('manager', 'Manager'),
        ('director', 'Director')
    ], string='Web Role')

    def get_child_ids(self):
        partner = self.env['res.partner'].search([('id', '=', self.id)], limit=1)
        partner_child_ids = [x['id'] for x in partner.child_ids] + [partner.id]
        if partner.parent_id:
            partner_child_ids += [x['id'] for x in partner.parent_id.child_ids]
            partner_child_ids += [partner.parent_id.id]
        return partner_child_ids
    
    def get_approve_partner_ids(self, type=False):
        parent = self.parent_id or self
        partners = self.search([('parent_id', '=', parent.id), ('web_role', 'in', ['manager', 'director'])])
        
        if type == 'email_comma_sep':
            return ",".join([x.email for x in partners])
        
        return partners

    @api.constrains('kota_id')
    def update_product_solr_flag(self):
        for partner in self:
            partner.city = partner.kota_id.name

    def unlink(self):
        if self._name == 'res.partner':
            raise UserError('Maaf anda tidak bisa delete contact')