From 08cc113be19d88e2a8dbb77f74aaa62798c567e9 Mon Sep 17 00:00:00 2001 From: "Andrea Grazioso (agr-odoo)" Date: Thu, 24 Feb 2022 14:22:04 +0000 Subject: [PATCH] [IMP] purchase,sale,l10n_in_[sale|purchase]: remove l10n_in_company_country_code field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Create a PO from Indian vendor [DEMO], confirm it, receive the products. 2. Go to Accounting app, manually create the vendor bill: - select the Vendor [DEMO] - in auto-complete field select the one created at 1. Traceback will raise because the field l10n_in_company_country_code was removed from account.move in 17610e8ca97b2e5315cc063ee3973f81ab910f5e opw-2745052 closes odoo/odoo#85501 X-original-commit: ffbfdde4b5b4cd791e866341a31cdf5e8aeb27e3 Signed-off-by: William André (wan) --- addons/l10n_in_purchase/models/account_move.py | 2 +- addons/l10n_in_purchase/models/purchase_order.py | 5 ++--- addons/l10n_in_purchase/views/purchase_order_views.xml | 6 +++--- addons/l10n_in_sale/models/sale_order.py | 7 +++---- addons/l10n_in_sale/views/sale_views.xml | 8 ++++---- addons/l10n_in_sale/wizard/sale_make_invoice_advance.py | 2 +- addons/l10n_in_sale_stock/models/sale_order.py | 2 +- addons/purchase/models/purchase.py | 1 + addons/sale/models/sale_order.py | 1 + 9 files changed, 17 insertions(+), 17 deletions(-) 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,