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 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)