Skip to content

Commit

Permalink
[MIG] delivery_free_fee_removal: Migration to 17.0
Browse files Browse the repository at this point in the history
TT52318
  • Loading branch information
juancarlosonate-tecnativa committed Jan 16, 2025
1 parent 1438099 commit 22652b9
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 35 deletions.
2 changes: 1 addition & 1 deletion delivery_free_fee_removal/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
{
"name": "Delivery Free Fee Removal",
"summary": "Hide free fee lines on sales orders",
"version": "15.0.1.0.0",
"version": "17.0.1.0.0",
"category": "Delivery",
"website": "https://github.com/OCA/delivery-carrier",
"author": "Tecnativa, Camptocamp, Odoo Community Association (OCA)",
Expand Down
1 change: 0 additions & 1 deletion delivery_free_fee_removal/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
from . import sale_order
from . import sale_order_line
19 changes: 0 additions & 19 deletions delivery_free_fee_removal/models/sale_order.py

This file was deleted.

18 changes: 18 additions & 0 deletions delivery_free_fee_removal/models/sale_order_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,21 @@ def _compute_is_free_delivery(self):
line.is_free_delivery = line.is_delivery and line.currency_id.is_zero(
line.price_total
)

def _compute_invoice_status(self):
free_delivery_lines = self.filtered(
lambda line: line.order_id.state == "sale" and line.is_free_delivery
)
res = super()._compute_invoice_status()
for line in free_delivery_lines:
line.invoice_status = "invoiced"
return res

def _compute_qty_to_invoice(self):
free_delivery_lines = self.filtered(
lambda line: line.order_id.state == "sale" and line.is_free_delivery
)
res = super()._compute_qty_to_invoice()
for line in free_delivery_lines:
line.qty_to_invoice = 0
return res
48 changes: 35 additions & 13 deletions delivery_free_fee_removal/tests/test_delivery_free_fee_removal.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Copyright 2022 Tecnativa - Víctor Martínez
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from odoo.tests.common import TransactionCase
from odoo.tests.common import Form, TransactionCase


class TestDeliveryFreeFeeRemoval(TransactionCase):
Expand Down Expand Up @@ -64,9 +64,8 @@ def test_delivery_free_fee_removal_with_fee(self):
}
],
)
res = self.report_obj._get_report_from_name(
"sale.report_saleorder"
)._render_qweb_text(self.sale.ids, False)
report = self.report_obj._get_report_from_name("sale.report_saleorder")
res = report._render_qweb_text(report, self.sale.ids, False)
self.assertRegex(str(res[0]), "Test Delivery")

def test_delivery_free_fee_removal_with_fee_invoice_policy_delivery(self):
Expand All @@ -85,9 +84,8 @@ def test_delivery_free_fee_removal_with_fee_invoice_policy_delivery(self):
}
],
)
res = self.report_obj._get_report_from_name(
"sale.report_saleorder"
)._render_qweb_text(self.sale.ids, False)
report = self.report_obj._get_report_from_name("sale.report_saleorder")
res = report._render_qweb_text(report, self.sale.ids, False)
self.assertRegex(str(res[0]), "Test Delivery")

def test_delivery_free_fee_removal_free_fee(self):
Expand All @@ -105,9 +103,8 @@ def test_delivery_free_fee_removal_free_fee(self):
}
],
)
res = self.report_obj._get_report_from_name(
"sale.report_saleorder"
)._render_qweb_text(self.sale.ids, False)
report = self.report_obj._get_report_from_name("sale.report_saleorder")
res = report._render_qweb_text(report, self.sale.ids, False)
self.assertNotRegex(str(res[0]), "Test Delivery")

def test_delivery_free_fee_removal_free_fee_invoice_policy_order(self):
Expand All @@ -126,7 +123,32 @@ def test_delivery_free_fee_removal_free_fee_invoice_policy_order(self):
}
],
)
res = self.report_obj._get_report_from_name(
"sale.report_saleorder"
)._render_qweb_text(self.sale.ids, False)
report = self.report_obj._get_report_from_name("sale.report_saleorder")
res = report._render_qweb_text(report, self.sale.ids, False)
self.assertNotRegex(str(res[0]), "Test Delivery")

def _set_delivery_carrier(self, carrier):
form = Form(
self.env["choose.delivery.carrier"].with_context(
default_order_id=self.sale.id,
),
view="delivery.choose_delivery_carrier_view_form",
)
form.carrier_id = carrier
shipping = form.save()
shipping.button_confirm()

def test_update_carrier_after_so_confirm(self):
self.delivery.fixed_price = 0
self._set_delivery_carrier(self.delivery)
self.sale.action_confirm()
other_carrier = self.env["delivery.carrier"].create(
{
"name": "Other Delivery (delivery_free_fee_removal)",
"delivery_type": "fixed",
"fixed_price": 10,
"free_over": True,
"product_id": self.delivery.product_id.id,
}
)
self._set_delivery_carrier(other_carrier) # This shouldn't fail
2 changes: 1 addition & 1 deletion delivery_free_fee_removal/views/sale_order_views.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<field name="inherit_id" ref="delivery.view_order_form_with_carrier" />
<field name="arch" type="xml">
<xpath expr="//field[@name='order_line']/tree" position="inside">
<field name="is_free_delivery" invisible="1" />
<field name="is_free_delivery" column_invisible="True" />
</xpath>
<xpath expr="//field[@name='order_line']/tree" position="attributes">
<attribute name="decoration-muted">is_free_delivery</attribute>
Expand Down

0 comments on commit 22652b9

Please sign in to comment.