summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2024-04-26 14:14:16 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2024-04-26 14:14:16 +0700
commitb5a42eda62ae2b3536a072b9cb21a61e91a7b49a (patch)
treeffa4386b0480b7b2c098680b0fbae7675ab213af /indoteknik_custom/models
parentd026ce987698790c8424a1b88d7bfacf1508dad6 (diff)
Add res partner site feature
Diffstat (limited to 'indoteknik_custom/models')
-rwxr-xr-xindoteknik_custom/models/__init__.py1
-rw-r--r--indoteknik_custom/models/res_partner.py27
-rw-r--r--indoteknik_custom/models/res_partner_site.py20
3 files changed, 48 insertions, 0 deletions
diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py
index 92a0f232..160d2af3 100755
--- a/indoteknik_custom/models/__init__.py
+++ b/indoteknik_custom/models/__init__.py
@@ -110,3 +110,4 @@ from . import cust_commision
from . import report_stock_forecasted
from . import web_logging
from . import sales_order_fullfillment
+from . import res_partner_site
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
index ad6fd6ec..bc8e2b0d 100644
--- a/indoteknik_custom/models/res_partner.py
+++ b/indoteknik_custom/models/res_partner.py
@@ -31,6 +31,33 @@ class ResPartner(models.Model):
('director', 'Director'),
('procurement', 'Procurement'),
], string='Web Role')
+ site_id = fields.Many2one('res.partner.site', string='Site')
+ main_parent_id = fields.Many2one('res.partner', string='Main Parent', compute='_compute_main_parent_id')
+
+ @api.onchange('site_id')
+ def _onchange_site_id(self):
+ for rec in self:
+ if not rec.site_id: continue
+ site = rec.site_id
+
+ rec.street = site.street
+ rec.street2 = site.street2
+ rec.city = site.city
+ rec.state_id = site.state_id
+ rec.country_id = site.country_id
+ rec.zip = site.zip
+
+ def get_main_parent(self):
+ partner = self
+
+ while partner.parent_id:
+ partner = partner.parent_id
+
+ return partner
+
+ def _compute_main_parent_id(self):
+ for partner in self:
+ partner.main_parent_id = partner.get_main_parent()
def get_child_ids(self):
partner = self.env['res.partner'].search([('id', '=', self.id)], limit=1)
diff --git a/indoteknik_custom/models/res_partner_site.py b/indoteknik_custom/models/res_partner_site.py
new file mode 100644
index 00000000..00850c97
--- /dev/null
+++ b/indoteknik_custom/models/res_partner_site.py
@@ -0,0 +1,20 @@
+from odoo import models, fields, api
+
+class ResPartnerSite(models.Model):
+ _name = 'res.partner.site'
+
+ partner_ids = fields.One2many('res.partner', 'site_id', string='Partners')
+ partner_id = fields.Many2one('res.partner', string='Partner')
+ name = fields.Char(string='Name')
+ street = fields.Char(string='Street')
+ street2 = fields.Char(string='Street 2')
+ city = fields.Char(string='City')
+ state_id = fields.Many2one('res.country.state', string='State')
+ country_id = fields.Many2one('res.country', string='Country')
+ zip = fields.Char(string='Zip')
+
+ @api.model
+ def create(self, vals):
+ rec = super(ResPartnerSite, self).create(vals)
+ rec.partner_id = rec.partner_id.get_main_parent()
+ return rec \ No newline at end of file