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')
|