From 2463db943bc73bc8b032a78b3f314f1f450f9020 Mon Sep 17 00:00:00 2001 From: Mateu Griful Date: Wed, 27 Jan 2021 13:24:14 +0100 Subject: [PATCH] [MIG] rma_repair: Migration to 14.0 --- rma_repair/__manifest__.py | 3 ++- rma_repair/models/rma_order_line.py | 21 +++++++++++++-------- rma_repair/security/ir.model.access.csv | 5 +++++ rma_repair/tests/test_rma_repair.py | 4 ++-- 4 files changed, 22 insertions(+), 11 deletions(-) create mode 100644 rma_repair/security/ir.model.access.csv diff --git a/rma_repair/__manifest__.py b/rma_repair/__manifest__.py index 0a07350d..da0bc158 100644 --- a/rma_repair/__manifest__.py +++ b/rma_repair/__manifest__.py @@ -2,7 +2,7 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "RMA Repair", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "license": "LGPL-3", "category": "RMA", "summary": "Links RMA with Repairs.", @@ -10,6 +10,7 @@ "website": "https://github.com/OCA/https://github.com/ForgeFlow/stock-rma", "depends": ["rma_account", "repair_refurbish"], "data": [ + "security/ir.model.access.csv", "views/rma_order_view.xml", "views/rma_operation_view.xml", "views/repair_view.xml", diff --git a/rma_repair/models/rma_order_line.py b/rma_repair/models/rma_order_line.py index ee8f4f86..4426c0ee 100644 --- a/rma_repair/models/rma_order_line.py +++ b/rma_repair/models/rma_order_line.py @@ -84,7 +84,8 @@ class RmaOrderLine(models.Model): ) delivery_policy = fields.Selection( - selection_add=[("repair", "Based on Repair Quantities")] + selection_add=[("repair", "Based on Repair Quantities")], + ondelete={"repair": lambda recs: recs.write({"delivery_policy": "no"})}, ) qty_to_pay = fields.Float(compute="_compute_qty_to_pay") qty_to_deliver = fields.Float(compute="_compute_qty_to_deliver") @@ -100,13 +101,17 @@ class RmaOrderLine(models.Model): "repair_ids.invoice_status", ) def _compute_qty_to_pay(self): - for rec in self.filtered(lambda l: l.delivery_policy == "repair"): - qty_to_pay = 0.0 - for repair in rec.repair_ids.filtered( - lambda r: r.invoice_method != "none" and r.invoice_status != "posted" - ): - qty_to_pay += repair.product_qty - rec.qty_to_pay = qty_to_pay + for rec in self: + if rec.delivery_policy == "repair": + qty_to_pay = 0.0 + for repair in rec.repair_ids.filtered( + lambda r: r.invoice_method != "none" + and r.invoice_status != "posted" + ): + qty_to_pay += repair.product_qty + rec.qty_to_pay = qty_to_pay + else: + rec.qty_to_pay = 0.0 def action_view_repair_order(self): action = self.env.ref("repair.action_repair_order_tree") diff --git a/rma_repair/security/ir.model.access.csv b/rma_repair/security/ir.model.access.csv new file mode 100644 index 00000000..38517fa9 --- /dev/null +++ b/rma_repair/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_rma_order_line_make_repair_customer_user_item,rma.order.line.make.repair.customer.user,model_rma_order_line_make_repair,rma.group_rma_customer_user,1,1,1,1 +access_rma_order_line_make_supplier_user_item,rma.order.line.make.repair.supplier.user,model_rma_order_line_make_repair,rma.group_rma_supplier_user,1,1,1,1 +access_rma_order_line_make_repair_item_customer_user_item,rma.order.line.make.repair.item.customer.user,model_rma_order_line_make_repair_item,rma.group_rma_customer_user,1,1,1,1 +access_rma_order_line_make_repair_item_supplier_user_item,rma.order.line.make.repair.item.supplier.user,model_rma_order_line_make_repair_item,rma.group_rma_supplier_user,1,1,1,1 diff --git a/rma_repair/tests/test_rma_repair.py b/rma_repair/tests/test_rma_repair.py index fa32f894..f14a0b87 100644 --- a/rma_repair/tests/test_rma_repair.py +++ b/rma_repair/tests/test_rma_repair.py @@ -98,7 +98,7 @@ class TestRmaRepair(common.SingleTransactionCase): cls.inv_customer = cls.env["account.move"].create( [ { - "type": "out_invoice", + "move_type": "out_invoice", "partner_id": cls.customer1.id, "invoice_date": fields.Date.from_string("2016-01-01"), "currency_id": cls.currency_id.id, @@ -263,7 +263,7 @@ class TestRmaRepair(common.SingleTransactionCase): self.assertEqual(rma.qty_repaired, 1.0) self.assertEqual(rma.qty_to_deliver, 1.0) repair.invoice_id.post() - repair.invoice_id.action_invoice_register_payment() + repair.invoice_id.action_register_payment() self.assertEqual(repair.invoice_status, "posted") self.assertEqual(rma.qty_to_pay, 0.0) self.assertEqual(rma.qty_repaired, 1.0)