diff --git a/sale_order_currency_rate/README.rst b/sale_order_currency_rate/README.rst index 30a1723d860..d295d6cc766 100644 --- a/sale_order_currency_rate/README.rst +++ b/sale_order_currency_rate/README.rst @@ -69,6 +69,11 @@ Contributors - Oscar Reyes +- `Sodexis `__ + + - SodexisTeam + - Sakthivel + Maintainers ----------- diff --git a/sale_order_currency_rate/__manifest__.py b/sale_order_currency_rate/__manifest__.py index e37a207bce8..7c6606c34e0 100644 --- a/sale_order_currency_rate/__manifest__.py +++ b/sale_order_currency_rate/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Currency Rate in Sale Order", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "category": "Sales Management", "website": "https://github.com/OCA/sale-workflow", "author": "Jarsa, Odoo Community Association (OCA)", diff --git a/sale_order_currency_rate/readme/CONTRIBUTORS.md b/sale_order_currency_rate/readme/CONTRIBUTORS.md index 845d02d6db3..d1995affcfd 100644 --- a/sale_order_currency_rate/readme/CONTRIBUTORS.md +++ b/sale_order_currency_rate/readme/CONTRIBUTORS.md @@ -1 +1,5 @@ - Oscar Reyes \<\> + +- [Sodexis](https://www.sodexis.com) + - SodexisTeam \<\> + - Sakthivel \<\> diff --git a/sale_order_currency_rate/static/description/index.html b/sale_order_currency_rate/static/description/index.html index 74169a50869..7f1c9337745 100644 --- a/sale_order_currency_rate/static/description/index.html +++ b/sale_order_currency_rate/static/description/index.html @@ -416,6 +416,11 @@

Authors

Contributors

diff --git a/sale_order_currency_rate/tests/__init__.py b/sale_order_currency_rate/tests/__init__.py new file mode 100644 index 00000000000..2fd9920805b --- /dev/null +++ b/sale_order_currency_rate/tests/__init__.py @@ -0,0 +1,4 @@ +# copyright 2024 Sodexis +# license OPL-1 (see license file for full copyright and licensing details). + +from . import test_sale_order_compute_currency_rate diff --git a/sale_order_currency_rate/tests/test_sale_order_compute_currency_rate.py b/sale_order_currency_rate/tests/test_sale_order_compute_currency_rate.py new file mode 100644 index 00000000000..fa6e29e7750 --- /dev/null +++ b/sale_order_currency_rate/tests/test_sale_order_compute_currency_rate.py @@ -0,0 +1,62 @@ +# copyright 2024 Sodexis +# license OPL-1 (see license file for full copyright and licensing details). + +from odoo.tests.common import TransactionCase + + +class TestSaleOrderCurrencyRate(TransactionCase): + def setUp(cls): + super().setUp() + cls.company = cls.env["res.company"].create({"name": "Test Company"}) + cls.partner = cls.env["res.partner"].create({"name": "Test client"}) + cls.currency_eur = cls.env.ref("base.EUR") + cls.currency_usd = cls.env.ref("base.USD") + cls.company.currency_id = cls.currency_usd + cls.product = cls.env.ref("product.product_product_9") + cls.sale_order = cls.env["sale.order"].create( + { + "company_id": cls.company.id, + "currency_id": cls.currency_eur.id, + "date_order": "2024-08-30", + "partner_id": cls.partner.id, + "order_line": [ + ( + 0, + 0, + { + "name": cls.product.name, + "product_id": cls.product.id, + "product_uom_qty": 5.0, + "product_uom": cls.product.uom_id.id, + "price_unit": 10, + }, + ) + ], + } + ) + cls.sale_order.currency_id = cls.currency_eur + + def test_compute_currency_rate_same_currency(self): + self.sale_order.currency_id = self.currency_usd + self.sale_order._compute_currency_rate() + self.assertEqual(self.sale_order.currency_rate, 1.0) + self.assertEqual(self.sale_order.inverse_currency_rate, 1.0) + + def test_compute_currency_rate_conversion(self): + self.sale_order._compute_currency_rate() + expected_rate = self.currency_eur._convert( + 1.0, + self.currency_usd, + self.company, + self.sale_order.date_order, + round=False, + ) + expected_inverse_rate = self.currency_usd._convert( + 1.0, + self.currency_eur, + self.company, + self.sale_order.date_order, + round=False, + ) + self.assertEqual(self.sale_order.currency_rate, expected_rate) + self.assertEqual(self.sale_order.inverse_currency_rate, expected_inverse_rate) diff --git a/sale_order_currency_rate/views/res_config_settings.xml b/sale_order_currency_rate/views/res_config_settings.xml index cfb03180eec..68faf91fbde 100644 --- a/sale_order_currency_rate/views/res_config_settings.xml +++ b/sale_order_currency_rate/views/res_config_settings.xml @@ -5,29 +5,24 @@ -
-
- Show Currency Rate -
- Select how to show exchange rate in sale orders.
- No: Don't show the exchange rate.
- Normal: Foreing currency to company currency.
- Inverse: Company currency to foreign currency.
- Both: Show both currency rates. -
-
- -
-
-
+ + + Select how to show exchange rate in sale orders.
+ No: Don't show the exchange rate.
+ Normal: Foreing currency to company currency.
+ Inverse: Company currency to foreign currency.
+ Both: Show both currency rates. +
+ +
diff --git a/sale_order_currency_rate/views/sale_order.xml b/sale_order_currency_rate/views/sale_order.xml index 6356120a754..716bb4d7a8a 100644 --- a/sale_order_currency_rate/views/sale_order.xml +++ b/sale_order_currency_rate/views/sale_order.xml @@ -8,11 +8,11 @@