From 0a7402bf0025e7c8f0431e219a7dc6a5d2cea8b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agathe=20Moll=C3=A9?= Date: Tue, 25 Jul 2017 12:19:09 -0400 Subject: [PATCH] [MIG] Partner Financial Risk : Migration to 10.0 --- partner_financial_risk/README.rst | 9 ++- partner_financial_risk/__init__.py | 1 + .../{__openerp__.py => __manifest__.py} | 8 ++- .../data/partner_financial_risk_data.xml | 2 +- partner_financial_risk/models/__init__.py | 1 + .../models/account_invoice.py | 58 +++++++++---------- partner_financial_risk/models/res_company.py | 2 +- partner_financial_risk/models/res_config.py | 2 +- partner_financial_risk/models/res_partner.py | 4 +- partner_financial_risk/tests/__init__.py | 1 + .../tests/test_partner_financial_risk.py | 15 ++--- .../views/account_invoice_view.xml | 15 ----- .../views/res_config_view.xml | 2 + .../views/res_partner_view.xml | 6 +- partner_financial_risk/wizard/__init__.py | 1 + .../wizard/parner_risk_exceeded.py | 2 +- .../wizard/partner_risk_exceeded_view.xml | 2 +- 17 files changed, 67 insertions(+), 64 deletions(-) rename partner_financial_risk/{__openerp__.py => __manifest__.py} (86%) delete mode 100644 partner_financial_risk/views/account_invoice_view.xml diff --git a/partner_financial_risk/README.rst b/partner_financial_risk/README.rst index 16cbd383a..fdbb9cd21 100644 --- a/partner_financial_risk/README.rst +++ b/partner_financial_risk/README.rst @@ -36,7 +36,7 @@ To use this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/134/9.0 + :target: https://runbot.odoo-community.org/runbot/134/10.0 Bug Tracker @@ -51,12 +51,19 @@ help us smashing it by providing a detailed and welcomed feedback. Credits ======= +Images +------ + +* Odoo Community Association: `Icon `_. + Contributors ------------ * Carlos Dauden * Pedro M. Baeza +* Agathe Mollé +Do not contact contributors directly about support or help with technical issues. Maintainer ---------- diff --git a/partner_financial_risk/__init__.py b/partner_financial_risk/__init__.py index 35e7c9600..2eb723313 100644 --- a/partner_financial_risk/__init__.py +++ b/partner_financial_risk/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models from . import wizard diff --git a/partner_financial_risk/__openerp__.py b/partner_financial_risk/__manifest__.py similarity index 86% rename from partner_financial_risk/__openerp__.py rename to partner_financial_risk/__manifest__.py index a6eb5161c..484ca676d 100644 --- a/partner_financial_risk/__openerp__.py +++ b/partner_financial_risk/__manifest__.py @@ -5,17 +5,19 @@ { 'name': 'Partner Financial Risk', 'summary': 'Manage partner risk', - 'version': '9.0.1.0.0', + 'version': '10.0.1.0.0', 'category': 'Sales Management', 'license': 'AGPL-3', 'author': 'Tecnativa, Odoo Community Association (OCA)', 'website': 'https://www.tecnativa.com', - 'depends': ['account'], + 'depends': [ + 'account', + 'sales_team', + ], 'data': [ 'data/partner_financial_risk_data.xml', 'views/res_config_view.xml', 'views/res_partner_view.xml', - 'views/account_invoice_view.xml', 'wizard/partner_risk_exceeded_view.xml', ], 'installable': True, diff --git a/partner_financial_risk/data/partner_financial_risk_data.xml b/partner_financial_risk/data/partner_financial_risk_data.xml index 709db5ce4..bb5373718 100644 --- a/partner_financial_risk/data/partner_financial_risk_data.xml +++ b/partner_financial_risk/data/partner_financial_risk_data.xml @@ -12,4 +12,4 @@ - \ No newline at end of file + diff --git a/partner_financial_risk/models/__init__.py b/partner_financial_risk/models/__init__.py index c9c4795e4..76fc98e41 100644 --- a/partner_financial_risk/models/__init__.py +++ b/partner_financial_risk/models/__init__.py @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import account_invoice from . import res_company diff --git a/partner_financial_risk/models/account_invoice.py b/partner_financial_risk/models/account_invoice.py index 843d60718..bbd06b5ad 100644 --- a/partner_financial_risk/models/account_invoice.py +++ b/partner_financial_risk/models/account_invoice.py @@ -2,39 +2,37 @@ # © 2016 Carlos Dauden # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import api, models, _ +from odoo import _, api, models class AccountInvoice(models.Model): _inherit = 'account.invoice' @api.multi - def invoice_open(self): - if self.env.context.get('bypass_risk', False): - return self.signal_workflow('invoice_open') - for invoice in self: - partner = invoice.partner_id.commercial_partner_id - exception_msg = "" - if partner.risk_exception: - exception_msg = _("Financial risk exceeded.\n") - elif partner.risk_invoice_open_limit and ( - (partner.risk_invoice_open + invoice.amount_total) > - partner.risk_invoice_open_limit): - exception_msg = _( - "This invoice exceeds the open invoices risk.\n") - # If risk_invoice_draft_include this invoice included in risk_total - elif not partner.risk_invoice_draft_include and ( - partner.risk_invoice_open_include and - (partner.risk_total + invoice.amount_total) > - partner.credit_limit): - exception_msg = _( - "This invoice exceeds the financial risk.\n") - if exception_msg: - return self.env['partner.risk.exceeded.wiz'].create({ - 'exception_msg': exception_msg, - 'partner_id': partner.id, - 'origin_reference': - '%s,%s' % (self._model, invoice.id), - 'continue_method': 'invoice_open', - }).action_show() - return self.signal_workflow('invoice_open') + def action_invoice_open(self): + if not self.env.context.get('bypass_risk', False): + for invoice in self: + partner = invoice.partner_id.commercial_partner_id + exception_msg = "" + if partner.risk_exception: + exception_msg = _("Financial risk exceeded.\n") + elif partner.risk_invoice_open_limit and ( + (partner.risk_invoice_open + invoice.amount_total) > + partner.risk_invoice_open_limit): + exception_msg = _( + "This invoice exceeds the open invoices risk.\n") + elif not partner.risk_invoice_draft_include and ( + partner.risk_invoice_open_include and + (partner.risk_total + invoice.amount_total) > + partner.credit_limit): + exception_msg = _( + "This invoice exceeds the financial risk.\n") + if exception_msg: + return self.env['partner.risk.exceeded.wiz'].create({ + 'exception_msg': exception_msg, + 'partner_id': partner.id, + 'origin_reference': + '%s,%s' % ('account.invoice', invoice.id), + 'continue_method': 'action_invoice_open', + }).action_show() + return super(AccountInvoice, self).action_invoice_open() diff --git a/partner_financial_risk/models/res_company.py b/partner_financial_risk/models/res_company.py index 667764ef3..ee1251b40 100644 --- a/partner_financial_risk/models/res_company.py +++ b/partner_financial_risk/models/res_company.py @@ -2,7 +2,7 @@ # © 2016 Carlos Dauden # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import fields, models +from odoo import fields, models class ResCompany(models.Model): diff --git a/partner_financial_risk/models/res_config.py b/partner_financial_risk/models/res_config.py index 213eca0a1..9337261cf 100644 --- a/partner_financial_risk/models/res_config.py +++ b/partner_financial_risk/models/res_config.py @@ -2,7 +2,7 @@ # © 2016 Carlos Dauden # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import fields, models +from odoo import fields, models class AccountConfigSettings(models.TransientModel): diff --git a/partner_financial_risk/models/res_partner.py b/partner_financial_risk/models/res_partner.py index f4e2297bb..0f32d3b78 100644 --- a/partner_financial_risk/models/res_partner.py +++ b/partner_financial_risk/models/res_partner.py @@ -4,7 +4,7 @@ from datetime import datetime from dateutil.relativedelta import relativedelta -from openerp import api, fields, models +from odoo import api, fields, models class ResPartner(models.Model): @@ -61,7 +61,7 @@ class ResPartner(models.Model): @api.multi def _compute_risk_allow_edit(self): is_editable = self.env.user.has_group( - 'base.group_sale_manager') or self.env.user.has_group( + 'sales_team.group_sale_manager') or self.env.user.has_group( 'account.group_account_manager') for partner in self.filtered('customer'): partner.risk_allow_edit = is_editable diff --git a/partner_financial_risk/tests/__init__.py b/partner_financial_risk/tests/__init__.py index 115520d1c..a8b5d4dab 100644 --- a/partner_financial_risk/tests/__init__.py +++ b/partner_financial_risk/tests/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import test_partner_financial_risk diff --git a/partner_financial_risk/tests/test_partner_financial_risk.py b/partner_financial_risk/tests/test_partner_financial_risk.py index d03a93641..25212ca78 100644 --- a/partner_financial_risk/tests/test_partner_financial_risk.py +++ b/partner_financial_risk/tests/test_partner_financial_risk.py @@ -2,15 +2,15 @@ # © 2016 Carlos Dauden # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp.tests.common import SavepointCase -from openerp import fields +from odoo.tests.common import SavepointCase +from odoo import fields class TestPartnerFinancialRisk(SavepointCase): @classmethod def setUpClass(cls): super(TestPartnerFinancialRisk, cls).setUpClass() - cls.env.user.groups_id |= cls.env.ref('base.group_sale_manager') + cls.env.user.groups_id |= cls.env.ref('sales_team.group_sale_manager') cls.partner = cls.env['res.partner'].create({ 'name': 'Partner test', 'customer': True, @@ -35,6 +35,7 @@ class TestPartnerFinancialRisk(SavepointCase): 'user_type_id': type_payable.id, 'reconcile': True, }) + cls.partner.property_account_payable_id = cls.account_customer.id cls.journal_sale = cls.env['account.journal'].create({ 'name': 'Test journal for sale', 'type': 'sale', @@ -68,7 +69,7 @@ class TestPartnerFinancialRisk(SavepointCase): self.partner.risk_invoice_draft_include = True self.assertAlmostEqual(self.partner.risk_invoice_draft, 550.0) self.assertAlmostEqual(self.partner.risk_total, 550.0) - self.invoice.signal_workflow('invoice_open') + self.invoice.action_invoice_open() self.assertAlmostEqual(self.partner.risk_invoice_draft, 0.0) self.assertFalse(self.invoice.date_due) self.partner.risk_invoice_unpaid_include = True @@ -82,14 +83,14 @@ class TestPartnerFinancialRisk(SavepointCase): invoice2 = self.invoice.copy({'partner_id': self.invoice_address.id}) self.assertAlmostEqual(self.partner.risk_invoice_draft, 550.0) self.assertAlmostEqual(self.partner.risk_invoice_unpaid, 550.0) - wiz_dic = invoice2.invoice_open() + wiz_dic = invoice2.action_invoice_open() wiz = self.env[wiz_dic['res_model']].browse(wiz_dic['res_id']) self.assertEqual(wiz.exception_msg, "Financial risk exceeded.\n") self.partner.risk_invoice_unpaid_limit = 0.0 self.assertFalse(self.partner.risk_exception) self.partner.risk_invoice_open_limit = 300.0 invoice2.date_due = fields.Date.today() - wiz_dic = invoice2.invoice_open() + wiz_dic = invoice2.action_invoice_open() wiz = self.env[wiz_dic['res_model']].browse(wiz_dic['res_id']) self.assertEqual(wiz.exception_msg, "This invoice exceeds the open invoices risk.\n") @@ -97,7 +98,7 @@ class TestPartnerFinancialRisk(SavepointCase): self.partner.risk_invoice_draft_include = False self.partner.risk_invoice_open_include = True self.partner.credit_limit = 900.0 - wiz_dic = invoice2.invoice_open() + wiz_dic = invoice2.action_invoice_open() wiz = self.env[wiz_dic['res_model']].browse(wiz_dic['res_id']) self.assertEqual(wiz.exception_msg, "This invoice exceeds the financial risk.\n") diff --git a/partner_financial_risk/views/account_invoice_view.xml b/partner_financial_risk/views/account_invoice_view.xml deleted file mode 100644 index 273b507d0..000000000 --- a/partner_financial_risk/views/account_invoice_view.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - account.invoice.partner.risk.form - account.invoice - - - - - - diff --git a/partner_financial_risk/views/res_config_view.xml b/partner_financial_risk/views/res_config_view.xml index 30158e6c7..86d95ee01 100644 --- a/partner_financial_risk/views/res_config_view.xml +++ b/partner_financial_risk/views/res_config_view.xml @@ -8,6 +8,7 @@ account.config.settings + + diff --git a/partner_financial_risk/views/res_partner_view.xml b/partner_financial_risk/views/res_partner_view.xml index f3bf24d2b..623ee666a 100644 --- a/partner_financial_risk/views/res_partner_view.xml +++ b/partner_financial_risk/views/res_partner_view.xml @@ -2,13 +2,15 @@ + res.partner.view.risk res.partner - + + @@ -53,6 +55,8 @@ + + diff --git a/partner_financial_risk/wizard/__init__.py b/partner_financial_risk/wizard/__init__.py index 15fd34531..4edeaa8f5 100644 --- a/partner_financial_risk/wizard/__init__.py +++ b/partner_financial_risk/wizard/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import parner_risk_exceeded diff --git a/partner_financial_risk/wizard/parner_risk_exceeded.py b/partner_financial_risk/wizard/parner_risk_exceeded.py index e110569b5..df1ffa3d5 100644 --- a/partner_financial_risk/wizard/parner_risk_exceeded.py +++ b/partner_financial_risk/wizard/parner_risk_exceeded.py @@ -2,7 +2,7 @@ # © 2016 Carlos Dauden # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import api, fields, models, _ +from odoo import _, api, fields, models class PartnerRiskExceededWiz(models.TransientModel): diff --git a/partner_financial_risk/wizard/partner_risk_exceeded_view.xml b/partner_financial_risk/wizard/partner_risk_exceeded_view.xml index 5f1b19648..add47714e 100644 --- a/partner_financial_risk/wizard/partner_risk_exceeded_view.xml +++ b/partner_financial_risk/wizard/partner_risk_exceeded_view.xml @@ -17,7 +17,7 @@ class="oe_highlight" name="button_continue" type="object" - groups="base.group_sale_manager,account.group_account_manager" + groups="sales_team.group_sale_manager,account.group_account_manager" />