Odoo18-Base/addons/l10n_in/models/company.py
2025-03-10 10:52:11 +07:00

33 lines
1.4 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class ResCompany(models.Model):
_inherit = 'res.company'
l10n_in_upi_id = fields.Char(string="UPI Id")
l10n_in_gst_state_warning = fields.Char(related="partner_id.l10n_in_gst_state_warning")
def create(self, vals):
res = super().create(vals)
# Update Fiscal Positions for new branch
res._update_l10n_in_fiscal_position()
return res
def write(self, vals):
res = super().write(vals)
if (vals.get('state_id') or vals.get('country_id')) and not self.env.context.get('delay_account_group_sync'):
# Update Fiscal Positions for companies setting up state for the first time
self._update_l10n_in_fiscal_position()
return res
def _update_l10n_in_fiscal_position(self):
companies_need_update_fp = self.filtered(lambda c: c.parent_ids[0].chart_template == 'in')
for company in companies_need_update_fp:
ChartTemplate = self.env['account.chart.template'].with_company(company)
fiscal_position_data = ChartTemplate._get_in_account_fiscal_position()
ChartTemplate._load_data({'account.fiscal.position': fiscal_position_data})
def action_update_state_as_per_gstin(self):
self.ensure_one()
self.partner_id.action_update_state_as_per_gstin()