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..26881f21f --- /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": "17.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", + "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..4035e672b --- /dev/null +++ b/rma_sale_force_invoiced/models/rma_operation.py @@ -0,0 +1,12 @@ +# 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( + 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/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" 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..d8766b590 --- /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()._prepare_sale_order(line) + data["force_invoiced"] = line.operation_id.sale_force_invoiced + return data