From de6a9a9ee2880337ac4730b24beb24a9ca46044d Mon Sep 17 00:00:00 2001 From: rhe-odoo Date: Wed, 4 Jan 2023 13:25:14 +0000 Subject: [PATCH] [FIX] l10n_gcc_pos: fix country undefined When the country is not defined on the company, there was an error when using the gcc l10n. To fix this, we check if the country is set before going further. closes odoo/odoo#111325 X-original-commit: 0ac8554751fbe22d58108eda0ac24edc933a41d8 Signed-off-by: Trinh Jacky (trj) --- addons/l10n_gcc_pos/static/src/js/OrderReceipt.js | 4 +--- addons/l10n_sa_pos/models/__init__.py | 1 + addons/l10n_sa_pos/models/pos_config.py | 15 +++++++++++++++ addons/l10n_sa_pos/static/src/js/models.js | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 addons/l10n_sa_pos/models/pos_config.py diff --git a/addons/l10n_gcc_pos/static/src/js/OrderReceipt.js b/addons/l10n_gcc_pos/static/src/js/OrderReceipt.js index 7072d6096e0..678414bc295 100644 --- a/addons/l10n_gcc_pos/static/src/js/OrderReceipt.js +++ b/addons/l10n_gcc_pos/static/src/js/OrderReceipt.js @@ -8,9 +8,7 @@ patch(OrderReceipt.prototype, "l10n_gcc_pos.OrderReceipt", { const receipt_render_env = this._super(...arguments); const receipt = receipt_render_env.receipt; const country = receipt_render_env.order.pos.company.country; - receipt.is_gcc_country = ["SA", "AE", "BH", "OM", "QA", "KW"].includes( - country && country.code - ); + receipt.is_gcc_country = country ? ["SA", "AE", "BH", "OM", "QA", "KW"].includes(country && country.code) : false; return receipt_render_env; }, }); diff --git a/addons/l10n_sa_pos/models/__init__.py b/addons/l10n_sa_pos/models/__init__.py index 7aa5ec302c4..8236d58c6b7 100644 --- a/addons/l10n_sa_pos/models/__init__.py +++ b/addons/l10n_sa_pos/models/__init__.py @@ -2,3 +2,4 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import pos_order +from . import pos_config diff --git a/addons/l10n_sa_pos/models/pos_config.py b/addons/l10n_sa_pos/models/pos_config.py new file mode 100644 index 00000000000..7892ebfde9e --- /dev/null +++ b/addons/l10n_sa_pos/models/pos_config.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models +from odoo.exceptions import UserError +from odoo.tools.translate import _ + + +class pos_config(models.Model): + _inherit = 'pos.config' + + def open_ui(self): + for config in self: + if not config.company_id.country_id: + raise UserError(_("You have to set a country in your company setting.")) + return super(pos_config, self).open_ui() diff --git a/addons/l10n_sa_pos/static/src/js/models.js b/addons/l10n_sa_pos/static/src/js/models.js index b16347a193f..76db2b64407 100644 --- a/addons/l10n_sa_pos/static/src/js/models.js +++ b/addons/l10n_sa_pos/static/src/js/models.js @@ -6,7 +6,7 @@ import { patch } from "@web/core/utils/patch"; patch(Order.prototype, "l10n_sa_pos.Order", { export_for_printing() { const result = this._super(...arguments); - if (this.pos.company.country.code === "SA") { + if (this.pos.company.country && this.pos.company.country.code === "SA") { result.is_settlement = this.is_settlement(); if (!result.is_settlement) { const codeWriter = new window.ZXing.BrowserQRCodeSvgWriter();