From b0a0cc2d24b98e6b4635bcab2fc06f688c4a58e8 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Date: Sun, 26 Jun 2022 19:01:36 +0200 Subject: [PATCH 1/5] [ADD] rma_sale_force_invoiced --- rma_sale_force_invoiced/README.rst | 49 +++++++++++++++++++ rma_sale_force_invoiced/__init__.py | 2 + rma_sale_force_invoiced/__manifest__.py | 17 +++++++ rma_sale_force_invoiced/models/__init__.py | 1 + .../models/rma_operation.py | 13 +++++ .../views/rma_operation_views.xml | 15 ++++++ rma_sale_force_invoiced/wizards/__init__.py | 1 + .../wizards/rma_order_line_make_sale_order.py | 14 ++++++ 8 files changed, 112 insertions(+) create mode 100644 rma_sale_force_invoiced/README.rst create mode 100644 rma_sale_force_invoiced/__init__.py create mode 100644 rma_sale_force_invoiced/__manifest__.py create mode 100644 rma_sale_force_invoiced/models/__init__.py create mode 100644 rma_sale_force_invoiced/models/rma_operation.py create mode 100644 rma_sale_force_invoiced/views/rma_operation_views.xml create mode 100644 rma_sale_force_invoiced/wizards/__init__.py create mode 100644 rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py diff --git a/rma_sale_force_invoiced/README.rst b/rma_sale_force_invoiced/README.rst new file mode 100644 index 000000000..d52f0b79f --- /dev/null +++ b/rma_sale_force_invoiced/README.rst @@ -0,0 +1,49 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License AGPL-3 + +======================= +RMA Sale Force Invoiced +======================= + +This module allows you to force the sales orders created from RMA order lines +to be set as invoiced once they are created. This use is useful in the +scenario, for example, where you sell goods free of charge and you don't want +to generate an invoice. + +Installation +============ + +This module depends on the module *sale_force_invoiced*, available in +https://github.com/OCA/sale-workflow. + +Usage +===== + +#. Go to *RMA / Configuration / Customer Operations* and set the flag +*Sale Force Invoiced* to the operation where you'd like to apply this +behaviour. +#. Go to *RMA / Customr RMA* and create a new RMA. +#. Press the button *Create Sale Quotation* available in the RMA. +#. Confirm the sale quotation. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Jordi Ballester Alomar + + +Maintainer +---------- + +This module is maintained by ForgeFlow diff --git a/rma_sale_force_invoiced/__init__.py b/rma_sale_force_invoiced/__init__.py new file mode 100644 index 000000000..aee8895e7 --- /dev/null +++ b/rma_sale_force_invoiced/__init__.py @@ -0,0 +1,2 @@ +from . import models +from . import wizards diff --git a/rma_sale_force_invoiced/__manifest__.py b/rma_sale_force_invoiced/__manifest__.py new file mode 100644 index 000000000..4c3fd191b --- /dev/null +++ b/rma_sale_force_invoiced/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2022 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.html) + +{ + "name": "RMA Sale Force Invoiced", + "version": "14.0.1.0.0", + "license": "AGPL-3", + "category": "RMA", + "summary": "Forces sales orders created from RMA to be forced as invoiced", + "author": "ForgeFlow", + "website": "https://github.com/ForgeFlow/stock-rma", + "depends": ["rma_sale", "sale_force_invoiced"], + "data": [ + "views/rma_operation_views.xml", + ], + "installable": True, +} diff --git a/rma_sale_force_invoiced/models/__init__.py b/rma_sale_force_invoiced/models/__init__.py new file mode 100644 index 000000000..9fd5ac20a --- /dev/null +++ b/rma_sale_force_invoiced/models/__init__.py @@ -0,0 +1 @@ +from . import rma_operation diff --git a/rma_sale_force_invoiced/models/rma_operation.py b/rma_sale_force_invoiced/models/rma_operation.py new file mode 100644 index 000000000..83529d058 --- /dev/null +++ b/rma_sale_force_invoiced/models/rma_operation.py @@ -0,0 +1,13 @@ +# Copyright 2022 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.html) +from odoo import fields, models + + +class RmaOperation(models.Model): + _inherit = "rma.operation" + + sale_force_invoiced = fields.Boolean( + string="Sale Force Invoiced", + help="Forces the sales order created from RMA to be flagged invoiced. " + "This is useful when the sales order is free of charge.", + ) diff --git a/rma_sale_force_invoiced/views/rma_operation_views.xml b/rma_sale_force_invoiced/views/rma_operation_views.xml new file mode 100644 index 000000000..7f1d5e2f9 --- /dev/null +++ b/rma_sale_force_invoiced/views/rma_operation_views.xml @@ -0,0 +1,15 @@ + + + + + rma.operation.form + rma.operation + + + + + + + + + diff --git a/rma_sale_force_invoiced/wizards/__init__.py b/rma_sale_force_invoiced/wizards/__init__.py new file mode 100644 index 000000000..049ccf680 --- /dev/null +++ b/rma_sale_force_invoiced/wizards/__init__.py @@ -0,0 +1 @@ +from . import rma_order_line_make_sale_order diff --git a/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py b/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py new file mode 100644 index 000000000..86885a0e8 --- /dev/null +++ b/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py @@ -0,0 +1,14 @@ +# Copyright 2022 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl-3.html) + +from odoo import api, models + + +class RmaLineMakeSaleOrder(models.TransientModel): + _inherit = "rma.order.line.make.sale.order" + + @api.model + def _prepare_sale_order(self, line): + data = super(RmaLineMakeSaleOrder, self)._prepare_sale_order(line) + data["force_invoiced"] = line.operation_id.sale_force_invoiced + return data From fdd80e64e3f2a393da6abcf892df7683f91eff58 Mon Sep 17 00:00:00 2001 From: DavidJForgeFlow Date: Fri, 3 Mar 2023 16:09:09 +0100 Subject: [PATCH 2/5] [MIG] rma_sale_force_invoiced: Migration to 15.0 --- rma_sale_force_invoiced/__manifest__.py | 2 +- rma_sale_force_invoiced/models/rma_operation.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rma_sale_force_invoiced/__manifest__.py b/rma_sale_force_invoiced/__manifest__.py index 4c3fd191b..f34b08deb 100644 --- a/rma_sale_force_invoiced/__manifest__.py +++ b/rma_sale_force_invoiced/__manifest__.py @@ -3,7 +3,7 @@ { "name": "RMA Sale Force Invoiced", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "license": "AGPL-3", "category": "RMA", "summary": "Forces sales orders created from RMA to be forced as invoiced", diff --git a/rma_sale_force_invoiced/models/rma_operation.py b/rma_sale_force_invoiced/models/rma_operation.py index 83529d058..4035e672b 100644 --- a/rma_sale_force_invoiced/models/rma_operation.py +++ b/rma_sale_force_invoiced/models/rma_operation.py @@ -7,7 +7,6 @@ class RmaOperation(models.Model): _inherit = "rma.operation" sale_force_invoiced = fields.Boolean( - string="Sale Force Invoiced", help="Forces the sales order created from RMA to be flagged invoiced. " "This is useful when the sales order is free of charge.", ) From 2475a018af5849095dbd793531b67e9c472bed2a Mon Sep 17 00:00:00 2001 From: DavidJForgeFlow Date: Fri, 3 Mar 2023 16:18:14 +0100 Subject: [PATCH 3/5] [MIG] rma_sale_force_invoiced: Migration to 16.0 --- rma_sale_force_invoiced/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rma_sale_force_invoiced/__manifest__.py b/rma_sale_force_invoiced/__manifest__.py index f34b08deb..5be18bf23 100644 --- a/rma_sale_force_invoiced/__manifest__.py +++ b/rma_sale_force_invoiced/__manifest__.py @@ -3,7 +3,7 @@ { "name": "RMA Sale Force Invoiced", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "license": "AGPL-3", "category": "RMA", "summary": "Forces sales orders created from RMA to be forced as invoiced", From 77459bc7cc82bcd7dcd280772a543f676401f079 Mon Sep 17 00:00:00 2001 From: JasminSForgeFlow Date: Fri, 3 Jan 2025 16:51:23 +0530 Subject: [PATCH 4/5] [IMP] rma_sale_force_invoiced: black, isort, prettier --- rma_sale_force_invoiced/__manifest__.py | 2 +- rma_sale_force_invoiced/pyproject.toml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 rma_sale_force_invoiced/pyproject.toml diff --git a/rma_sale_force_invoiced/__manifest__.py b/rma_sale_force_invoiced/__manifest__.py index 5be18bf23..d2a8b1c73 100644 --- a/rma_sale_force_invoiced/__manifest__.py +++ b/rma_sale_force_invoiced/__manifest__.py @@ -8,7 +8,7 @@ "category": "RMA", "summary": "Forces sales orders created from RMA to be forced as invoiced", "author": "ForgeFlow", - "website": "https://github.com/ForgeFlow/stock-rma", + "website": "https://github.com/ForgeFlow", "depends": ["rma_sale", "sale_force_invoiced"], "data": [ "views/rma_operation_views.xml", diff --git a/rma_sale_force_invoiced/pyproject.toml b/rma_sale_force_invoiced/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/rma_sale_force_invoiced/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" From 19aa5ed88d7249328369cbf5c567a2d2a799c71a Mon Sep 17 00:00:00 2001 From: JasminSForgeFlow Date: Fri, 3 Jan 2025 17:35:43 +0530 Subject: [PATCH 5/5] [MIG] rma_sale_force_invoiced: Migration to 17.0 --- rma_sale_force_invoiced/__manifest__.py | 2 +- .../wizards/rma_order_line_make_sale_order.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rma_sale_force_invoiced/__manifest__.py b/rma_sale_force_invoiced/__manifest__.py index d2a8b1c73..26881f21f 100644 --- a/rma_sale_force_invoiced/__manifest__.py +++ b/rma_sale_force_invoiced/__manifest__.py @@ -3,7 +3,7 @@ { "name": "RMA Sale Force Invoiced", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "license": "AGPL-3", "category": "RMA", "summary": "Forces sales orders created from RMA to be forced as invoiced", diff --git a/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py b/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py index 86885a0e8..d8766b590 100644 --- a/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py +++ b/rma_sale_force_invoiced/wizards/rma_order_line_make_sale_order.py @@ -9,6 +9,6 @@ class RmaLineMakeSaleOrder(models.TransientModel): @api.model def _prepare_sale_order(self, line): - data = super(RmaLineMakeSaleOrder, self)._prepare_sale_order(line) + data = super()._prepare_sale_order(line) data["force_invoiced"] = line.operation_id.sale_force_invoiced return data