From 02cd8ebe029f9e428f094c20e1e9228fe04723a9 Mon Sep 17 00:00:00 2001 From: kir-odoo Date: Wed, 25 Jan 2023 07:00:13 +0000 Subject: [PATCH] [ADD] l10n_in: merge l10n_in_upi l10n_in merge l10n_in_upi into l10n_in closes odoo/odoo#111299 Related: odoo/upgrade#4272 Signed-off-by: Josse Colpaert --- addons/l10n_in/__manifest__.py | 1 + addons/l10n_in/models/account_invoice.py | 16 ++++++++++++- addons/l10n_in/models/company.py | 5 ++-- .../views/res_company_views.xml | 0 addons/l10n_in_upi/__init__.py | 3 --- addons/l10n_in_upi/__manifest__.py | 19 --------------- addons/l10n_in_upi/models/__init__.py | 4 ---- addons/l10n_in_upi/models/account_invoice.py | 23 ------------------- addons/l10n_in_upi/models/res_company.py | 10 -------- 9 files changed, 19 insertions(+), 62 deletions(-) rename addons/{l10n_in_upi => l10n_in}/views/res_company_views.xml (100%) delete mode 100644 addons/l10n_in_upi/__init__.py delete mode 100644 addons/l10n_in_upi/__manifest__.py delete mode 100644 addons/l10n_in_upi/models/__init__.py delete mode 100644 addons/l10n_in_upi/models/account_invoice.py delete mode 100644 addons/l10n_in_upi/models/res_company.py diff --git a/addons/l10n_in/__manifest__.py b/addons/l10n_in/__manifest__.py index 68f88aea5a5..a612dc78245 100644 --- a/addons/l10n_in/__manifest__.py +++ b/addons/l10n_in/__manifest__.py @@ -37,6 +37,7 @@ Sheet, now only Vertical format has been permitted Which is Supported By Odoo. 'views/res_config_settings_views.xml', 'views/product_template_view.xml', 'views/port_code_views.xml', + 'views/res_company_views.xml', 'views/report_invoice.xml', 'views/res_country_state_view.xml', 'views/res_partner_views.xml', diff --git a/addons/l10n_in/models/account_invoice.py b/addons/l10n_in/models/account_invoice.py index b1289a5bddf..2407deb2b5b 100644 --- a/addons/l10n_in/models/account_invoice.py +++ b/addons/l10n_in/models/account_invoice.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. - +import base64 import logging from odoo import api, fields, models, _ from odoo.exceptions import ValidationError, RedirectWarning, UserError +from odoo.tools.image import image_data_uri _logger = logging.getLogger(__name__) @@ -122,3 +123,16 @@ class AccountMove(models.Model): if logger_msg: _logger.info(logger_msg) return res + + def _generate_qr_code(self, silent_errors=False): + self.ensure_one() + if self.company_id.country_code == 'IN': + payment_url = 'upi://pay?pa=%s&pn=%s&am=%s&tr=%s&tn=%s' % ( + self.company_id.l10n_in_upi_id, + self.company_id.name, + self.amount_residual, + self.payment_reference or self.name, + ("Payment for %s" % self.name)) + barcode = self.env['ir.actions.report'].barcode(barcode_type="QR", value=payment_url, width=120, height=120) + return image_data_uri(base64.b64encode(barcode)) + return super()._generate_qr_code(silent_errors) diff --git a/addons/l10n_in/models/company.py b/addons/l10n_in/models/company.py index c1e38290f3f..04f533ecd84 100644 --- a/addons/l10n_in/models/company.py +++ b/addons/l10n_in/models/company.py @@ -1,9 +1,10 @@ -from odoo import api, models - +from odoo import api, fields, models class ResCompany(models.Model): _inherit = 'res.company' + l10n_in_upi_id = fields.Char(string="UPI Id") + @api.model_create_multi def create(self, vals_list): companies = super().create(vals_list) diff --git a/addons/l10n_in_upi/views/res_company_views.xml b/addons/l10n_in/views/res_company_views.xml similarity index 100% rename from addons/l10n_in_upi/views/res_company_views.xml rename to addons/l10n_in/views/res_company_views.xml diff --git a/addons/l10n_in_upi/__init__.py b/addons/l10n_in_upi/__init__.py deleted file mode 100644 index be9f4fab00a..00000000000 --- a/addons/l10n_in_upi/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import models diff --git a/addons/l10n_in_upi/__manifest__.py b/addons/l10n_in_upi/__manifest__.py deleted file mode 100644 index 1b676cf3ea4..00000000000 --- a/addons/l10n_in_upi/__manifest__.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. -{ - 'name': 'Indian - UPI', - 'countries': ['in'], - 'version': '1.0', - 'description': """ -Invoice with UPI QR code -========================= -This module adds QR code in invoice report for UPI payment allowing to make payment via any UPI app. - -To print UPI Qr code add UPI id in company and tick "QR Codes" in configuration - """, - 'category': 'Accounting/Localizations', - 'depends': ['l10n_in'], - 'data': ['views/res_company_views.xml'], - 'license': 'LGPL-3', - 'auto_install': True, -} diff --git a/addons/l10n_in_upi/models/__init__.py b/addons/l10n_in_upi/models/__init__.py deleted file mode 100644 index 1bd4ba68797..00000000000 --- a/addons/l10n_in_upi/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding:utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import account_invoice -from . import res_company diff --git a/addons/l10n_in_upi/models/account_invoice.py b/addons/l10n_in_upi/models/account_invoice.py deleted file mode 100644 index a0459530103..00000000000 --- a/addons/l10n_in_upi/models/account_invoice.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. -import base64 - -from odoo import models -from odoo.tools.image import image_data_uri - - -class AccountMove(models.Model): - _inherit = "account.move" - - def _generate_qr_code(self, silent_errors=False): - self.ensure_one() - if self.company_id.country_code == 'IN': - payment_url = 'upi://pay?pa=%s&pn=%s&am=%s&tr=%s&tn=%s' % ( - self.company_id.l10n_in_upi_id, - self.company_id.name, - self.amount_residual, - self.payment_reference or self.name, - ("Payment for %s" % self.name)) - barcode = self.env['ir.actions.report'].barcode(barcode_type="QR", value=payment_url, width=120, height=120) - return image_data_uri(base64.b64encode(barcode)) - return super()._generate_qr_code(silent_errors) diff --git a/addons/l10n_in_upi/models/res_company.py b/addons/l10n_in_upi/models/res_company.py deleted file mode 100644 index 9adfe1f1ed8..00000000000 --- a/addons/l10n_in_upi/models/res_company.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import fields, models - - -class Company(models.Model): - _inherit = 'res.company' - - l10n_in_upi_id = fields.Char(string="UPI Id")