From b805452db8025cecef1d97d89c021a4371ad58c9 Mon Sep 17 00:00:00 2001 From: Cedric Collins Date: Wed, 13 Jul 2022 20:59:55 -0500 Subject: [PATCH] [IMP] sale_payment_web: migrate from 13.0 to 14.0 --- sale_payment_web/__manifest__.py | 5 +- sale_payment_web/models/sale.py | 1 - sale_payment_web/tests/test_sale_payment.py | 39 ++-- sale_payment_web/views/payment_views.xml | 15 ++ sale_payment_web/views/sale_views.xml | 5 +- .../wizard/account_payment_register.py | 195 +++++++++--------- .../wizard/account_payment_register_views.xml | 27 ++- 7 files changed, 153 insertions(+), 134 deletions(-) create mode 100644 sale_payment_web/views/payment_views.xml diff --git a/sale_payment_web/__manifest__.py b/sale_payment_web/__manifest__.py index b60ca6a1..87a26bd9 100755 --- a/sale_payment_web/__manifest__.py +++ b/sale_payment_web/__manifest__.py @@ -2,7 +2,7 @@ 'name': 'Sale Payment Web', 'author': 'Hibou Corp. ', 'category': 'Sales', - 'version': '13.0.1.0.0', + 'version': '14.0.1.0.0', 'description': """ Sale Payment Web @@ -21,7 +21,8 @@ Electronic payments will create transactions and automatically reconcile on the 'data': [ 'security/sale_security.xml', 'security/ir.model.access.csv', - 'wizard/account_payment_register_views.xml', + 'views/payment_views.xml', 'views/sale_views.xml', + 'wizard/account_payment_register_views.xml', ], } diff --git a/sale_payment_web/models/sale.py b/sale_payment_web/models/sale.py index eaa7b9fc..dd002d90 100644 --- a/sale_payment_web/models/sale.py +++ b/sale_payment_web/models/sale.py @@ -29,7 +29,6 @@ class SaleOrder(models.Model): 'name': _('Register Payment'), 'res_model': 'account.payment.register', 'view_mode': 'form', - 'view_id': self.env.ref('account.view_account_payment_form_multi').id, 'context': {'active_ids': self.ids, 'active_model': 'sale.order'}, 'target': 'new', 'type': 'ir.actions.act_window', diff --git a/sale_payment_web/tests/test_sale_payment.py b/sale_payment_web/tests/test_sale_payment.py index 38bd2edf..50d180cf 100644 --- a/sale_payment_web/tests/test_sale_payment.py +++ b/sale_payment_web/tests/test_sale_payment.py @@ -1,42 +1,49 @@ from odoo.addons.sale.tests.test_sale_to_invoice import TestSaleToInvoice from odoo.exceptions import UserError +from odoo.tests import tagged +@tagged('post_install', '-at_install') class TestSalePayment(TestSaleToInvoice): - def setUp(self): - super(TestSalePayment, self).setUp() - self.context = { + def _sale_context(self): + return { 'active_model': 'sale.order', 'active_ids': [self.sale_order.id], 'active_id': self.sale_order.id, } - def test_payment(self): + def test_00_payment(self): self.sale_order.action_confirm() - payment_wizard = self.env['account.payment.register'].with_context(self.context).create({'amount': -15}) + payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': -15}) self.assertTrue(payment_wizard.journal_id) with self.assertRaises(UserError): - payment_wizard.create_payments() + payment_wizard._create_payments() - payment_wizard = self.env['account.payment.register'].with_context(self.context).create({'amount': 0}) + payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': 0}) self.assertTrue(payment_wizard.journal_id) with self.assertRaises(UserError): - payment_wizard.create_payments() + payment_wizard._create_payments() - payment_wizard = self.env['account.payment.register'].with_context(self.context).create({}) + payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({}) self.assertTrue(payment_wizard.journal_id) - payment_action = payment_wizard.create_payments() - self.assertTrue(isinstance(payment_action, dict)) - payment = self.env[payment_action['res_model']].browse(payment_action['res_id']) - self.assertTrue(payment.exists()) + payment = payment_wizard._create_payments() self.assertEqual(payment.amount, self.sale_order.amount_total) - self.assertEqual(payment.sale_order_id, self.sale_order) + self.assertEqual(self.sale_order.manual_amount_remaining, 0.0) - payment_wizard = self.env['account.payment.register'].with_context(self.context).create({'amount': 15}) + payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': 15}) self.assertTrue(payment_wizard.journal_id) with self.assertRaises(UserError): - payment_wizard.create_payments() + payment_wizard._create_payments() + + def test_10_partial_payment(self): + payment_wizard = self.env['account.payment.register'].with_context(self._sale_context()).create({'amount': 50}) + self.assertTrue(payment_wizard.journal_id) + + payment = payment_wizard._create_payments() + self.assertEqual(payment.amount, 50) + self.assertEqual(payment.sale_order_id, self.sale_order) + self.assertEqual(self.sale_order.manual_amount_remaining, self.sale_order.amount_total - 50) diff --git a/sale_payment_web/views/payment_views.xml b/sale_payment_web/views/payment_views.xml new file mode 100644 index 00000000..ae63961a --- /dev/null +++ b/sale_payment_web/views/payment_views.xml @@ -0,0 +1,15 @@ + + + + + account.payment.form.inherit + account.payment + + + + + + + + + diff --git a/sale_payment_web/views/sale_views.xml b/sale_payment_web/views/sale_views.xml index f736b90b..cf5a4869 100644 --- a/sale_payment_web/views/sale_views.xml +++ b/sale_payment_web/views/sale_views.xml @@ -8,7 +8,10 @@ -