diff --git a/addons/l10n_in_purchase/models/account_move.py b/addons/l10n_in_purchase/models/account_move.py
index c753c2cc1da..c3d6571d944 100644
--- a/addons/l10n_in_purchase/models/account_move.py
+++ b/addons/l10n_in_purchase/models/account_move.py
@@ -10,7 +10,7 @@ class AccountMove(models.Model):
@api.onchange('purchase_vendor_bill_id', 'purchase_id')
def _onchange_purchase_auto_complete(self):
purchase_order_id = self.purchase_vendor_bill_id.purchase_order_id or self.purchase_id
- if purchase_order_id and self.l10n_in_company_country_code == 'IN':
+ if purchase_order_id and purchase_order_id.country_code == 'IN':
journal_id = self.purchase_vendor_bill_id.purchase_order_id.l10n_in_journal_id or self.purchase_id.l10n_in_journal_id
if journal_id:
self.journal_id = journal_id
diff --git a/addons/l10n_in_purchase/models/purchase_order.py b/addons/l10n_in_purchase/models/purchase_order.py
index 42c83b6c3b1..bc5155d9dfe 100644
--- a/addons/l10n_in_purchase/models/purchase_order.py
+++ b/addons/l10n_in_purchase/models/purchase_order.py
@@ -19,11 +19,10 @@ class PurchaseOrder(models.Model):
('special_economic_zone', 'Special Economic Zone'),
('deemed_export', 'Deemed Export')
], string="GST Treatment", states=Purchase.READONLY_STATES, compute="_compute_l10n_in_gst_treatment", store=True)
- l10n_in_company_country_code = fields.Char(related='company_id.account_fiscal_country_id.code', string="Country code")
@api.onchange('company_id')
def l10n_in_onchange_company_id(self):
- if self.l10n_in_company_country_code == 'IN':
+ if self.country_code == 'IN':
domain = [('company_id', '=', self.company_id.id), ('type', '=', 'purchase')]
journal = self.env['account.journal'].search(domain, limit=1)
if journal:
@@ -34,7 +33,7 @@ class PurchaseOrder(models.Model):
for order in self:
# set default value as False so CacheMiss error never occurs for this field.
order.l10n_in_gst_treatment = False
- if order.l10n_in_company_country_code == 'IN':
+ if order.country_code == 'IN':
l10n_in_gst_treatment = order.partner_id.l10n_in_gst_treatment
if not l10n_in_gst_treatment and order.partner_id.country_id and order.partner_id.country_id.code != 'IN':
l10n_in_gst_treatment = 'overseas'
diff --git a/addons/l10n_in_purchase/views/purchase_order_views.xml b/addons/l10n_in_purchase/views/purchase_order_views.xml
index 4200706ef8b..feb2fd82431 100644
--- a/addons/l10n_in_purchase/views/purchase_order_views.xml
+++ b/addons/l10n_in_purchase/views/purchase_order_views.xml
@@ -6,11 +6,11 @@
-
-
+
+
-
+
diff --git a/addons/l10n_in_sale/models/sale_order.py b/addons/l10n_in_sale/models/sale_order.py
index 5e93a0c8050..e7170843b51 100644
--- a/addons/l10n_in_sale/models/sale_order.py
+++ b/addons/l10n_in_sale/models/sale_order.py
@@ -19,14 +19,13 @@ class SaleOrder(models.Model):
('special_economic_zone', 'Special Economic Zone'),
('deemed_export', 'Deemed Export'),
], string="GST Treatment", readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, compute="_compute_l10n_in_gst_treatment", store=True)
- l10n_in_company_country_code = fields.Char(related='company_id.account_fiscal_country_id.code', string="Country code")
@api.depends('partner_id')
def _compute_l10n_in_gst_treatment(self):
for order in self:
# set default value as False so CacheMiss error never occurs for this field.
order.l10n_in_gst_treatment = False
- if order.l10n_in_company_country_code == 'IN':
+ if order.country_code == 'IN':
l10n_in_gst_treatment = order.partner_id.l10n_in_gst_treatment
if not l10n_in_gst_treatment and order.partner_id.country_id and order.partner_id.country_id.code != 'IN':
l10n_in_gst_treatment = 'overseas'
@@ -39,7 +38,7 @@ class SaleOrder(models.Model):
for order in self:
# set default value as False so CacheMiss error never occurs for this field.
order.l10n_in_journal_id = False
- if order.l10n_in_company_country_code == 'IN':
+ if order.country_code == 'IN':
domain = [('company_id', '=', order.company_id.id), ('type', '=', 'sale')]
journal = self.env['account.journal'].search(domain, limit=1)
if journal:
@@ -48,7 +47,7 @@ class SaleOrder(models.Model):
def _prepare_invoice(self):
invoice_vals = super(SaleOrder, self)._prepare_invoice()
- if self.l10n_in_company_country_code == 'IN':
+ if self.country_code == 'IN':
invoice_vals['l10n_in_reseller_partner_id'] = self.l10n_in_reseller_partner_id.id
if self.l10n_in_journal_id:
invoice_vals['journal_id'] = self.l10n_in_journal_id.id
diff --git a/addons/l10n_in_sale/views/sale_views.xml b/addons/l10n_in_sale/views/sale_views.xml
index 03f9a0a0a2b..da8a83116f1 100644
--- a/addons/l10n_in_sale/views/sale_views.xml
+++ b/addons/l10n_in_sale/views/sale_views.xml
@@ -6,14 +6,14 @@
-
+
+ attrs="{'invisible': [('country_code','!=', 'IN')]}"/>
+ attrs="{'invisible':[('country_code','!=','IN')],'required':[('country_code','=','IN')]}"/>
-
+
diff --git a/addons/l10n_in_sale/wizard/sale_make_invoice_advance.py b/addons/l10n_in_sale/wizard/sale_make_invoice_advance.py
index c47d97c342d..6fc5f349c04 100644
--- a/addons/l10n_in_sale/wizard/sale_make_invoice_advance.py
+++ b/addons/l10n_in_sale/wizard/sale_make_invoice_advance.py
@@ -11,7 +11,7 @@ class SaleAdvancePaymentInv(models.TransientModel):
res = super()._prepare_invoice_values(order, name, amount, so_line)
if order.l10n_in_journal_id:
res['journal_id'] = order.l10n_in_journal_id.id
- if order.l10n_in_company_country_code == 'IN':
+ if order.country_code == 'IN':
res['l10n_in_gst_treatment'] = order.l10n_in_gst_treatment
if order.l10n_in_reseller_partner_id:
res['l10n_in_reseller_partner_id'] = order.l10n_in_reseller_partner_id
diff --git a/addons/l10n_in_sale_stock/models/sale_order.py b/addons/l10n_in_sale_stock/models/sale_order.py
index 5c07b5e67de..34ba84e3bfe 100644
--- a/addons/l10n_in_sale_stock/models/sale_order.py
+++ b/addons/l10n_in_sale_stock/models/sale_order.py
@@ -11,6 +11,6 @@ class SaleOrder(models.Model):
def _compute_l10n_in_journal_id(self):
super()._compute_l10n_in_journal_id()
for order in self:
- if order.l10n_in_company_country_code == 'IN':
+ if order.country_code == 'IN':
if order.warehouse_id.l10n_in_sale_journal_id:
order.l10n_in_journal_id = order.warehouse_id.l10n_in_sale_journal_id.id
diff --git a/addons/purchase/models/purchase.py b/addons/purchase/models/purchase.py
index 73bf338b228..afdeaf3e325 100644
--- a/addons/purchase/models/purchase.py
+++ b/addons/purchase/models/purchase.py
@@ -136,6 +136,7 @@ class PurchaseOrder(models.Model):
'res.users', string='Purchase Representative', index=True, tracking=True,
default=lambda self: self.env.user, check_company=True)
company_id = fields.Many2one('res.company', 'Company', required=True, index=True, states=READONLY_STATES, default=lambda self: self.env.company.id)
+ country_code = fields.Char(related='company_id.account_fiscal_country_id.code', string="Country code")
currency_rate = fields.Float("Currency Rate", compute='_compute_currency_rate', compute_sudo=True, store=True, readonly=True, help='Ratio between the purchase order currency and the company currency')
mail_reminder_confirmed = fields.Boolean("Reminder Confirmed", default=False, readonly=True, copy=False, help="True if the reminder email is confirmed by the vendor.")
diff --git a/addons/sale/models/sale_order.py b/addons/sale/models/sale_order.py
index d80d708a31c..2689aa29be1 100644
--- a/addons/sale/models/sale_order.py
+++ b/addons/sale/models/sale_order.py
@@ -260,6 +260,7 @@ class SaleOrder(models.Model):
compute_sudo=True,
help="Technical field to filter the available taxes depending on the fiscal country and fiscal position.")
company_id = fields.Many2one('res.company', 'Company', required=True, index=True, default=lambda self: self.env.company)
+ country_code = fields.Char(related='company_id.account_fiscal_country_id.code', string="Country code")
team_id = fields.Many2one(
'crm.team', 'Sales Team',
ondelete="set null", tracking=True,