From 98b8e9a1c4b98d223aa0497a8f7642d4a83b4ec6 Mon Sep 17 00:00:00 2001 From: Eugene Molotov Date: Fri, 14 Feb 2025 10:25:13 +0500 Subject: [PATCH 1/2] =?UTF-8?q?[FIX]=20website=5Fsale=5Frefund:=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B0=D0=B4=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D1=81=D1=87=D0=B8=D1=82=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D1=81=20refund-=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- website_sale_refund/models/sale_order.py | 7 +++++- website_sale_refund/tests/__init__.py | 1 + website_sale_refund/tests/test_sale_prices.py | 25 +++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 website_sale_refund/tests/__init__.py create mode 100644 website_sale_refund/tests/test_sale_prices.py diff --git a/website_sale_refund/models/sale_order.py b/website_sale_refund/models/sale_order.py index 59cba5b..436ce31 100644 --- a/website_sale_refund/models/sale_order.py +++ b/website_sale_refund/models/sale_order.py @@ -1,4 +1,4 @@ -from odoo import fields, models +from odoo import api, fields, models class SaleOrder(models.Model): @@ -90,6 +90,11 @@ class SaleOrderLine(models.Model): help="Order line that is used for refund", ) + @api.depends("refund_source_line_id") + def _compute_price_unit(self): + refund_lines = self.filtered("refund_source_line_id") + return super(SaleOrderLine, self - refund_lines)._compute_price_unit() + def _cancel_line(self, origin=None): # Origin - sale order, that cancels this line # TODO: cancel delivery, etc diff --git a/website_sale_refund/tests/__init__.py b/website_sale_refund/tests/__init__.py new file mode 100644 index 0000000..6a9ae53 --- /dev/null +++ b/website_sale_refund/tests/__init__.py @@ -0,0 +1 @@ +from . import test_sale_prices diff --git a/website_sale_refund/tests/test_sale_prices.py b/website_sale_refund/tests/test_sale_prices.py new file mode 100644 index 0000000..056c238 --- /dev/null +++ b/website_sale_refund/tests/test_sale_prices.py @@ -0,0 +1,25 @@ +from odoo.tests import tagged + +from odoo.addons.sale.tests.common import SaleCommon + + +@tagged("post_install", "-at_install") +class TestSalePrices(SaleCommon): + def test_update_prices(self): + old_sale_order = self.sale_order + old_order_line = old_sale_order.order_line.filtered("price_unit")[0] + + new_sale_order = self.env["sale.order"].create( + { + "partner_id": old_sale_order.partner_id.id, + } + ) + refund_qty = 1 + expected_refund_price = -old_order_line.price_unit * refund_qty + refund_order_line = new_sale_order.add_refund_line( + old_order_line, "Test refund order line", qty=refund_qty + ) + + self.assertEqual(refund_order_line.price_unit, expected_refund_price) + new_sale_order._recompute_prices() + self.assertEqual(refund_order_line.price_unit, expected_refund_price) From 631c907b28595500a7534f297eb4c1292358dd19 Mon Sep 17 00:00:00 2001 From: Eugene Molotov Date: Fri, 1 Aug 2025 10:15:27 +0500 Subject: [PATCH 2/2] =?UTF-8?q?[FIX]=20portal=5Fevent=5Ftickets:=20=D0=B2?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D0=BC=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=20=D1=81=D0=BC=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B8=D0=BA?= =?UTF-8?q?=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- portal_event_tickets/tests/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/portal_event_tickets/tests/__init__.py b/portal_event_tickets/tests/__init__.py index 14ea249..c2e1015 100644 --- a/portal_event_tickets/tests/__init__.py +++ b/portal_event_tickets/tests/__init__.py @@ -1,2 +1,3 @@ from . import test_ticket_transfer from . import test_ticket_pdf +from . import test_ticket_upgrade