Skip to content

Commit b361a86

Browse files
committed
[ADD] add rma_reason
Specifying the RMA reason when creating an RMA order is crucial for effective inventory management, quality control, and customer service. It helps categorize returned items accurately, identify recurring product issues, and improve overall product quality. This data enables customer service to address issues more effectively and enhances the customer experience. This addon allows RMA managers to pre-configure possible reasons users can specify when creating the RMA order.
1 parent 3436ec6 commit b361a86

File tree

21 files changed

+895
-0
lines changed

21 files changed

+895
-0
lines changed

rma_reason/README.rst

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
==========
2+
Rma Reason
3+
==========
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:cbc6042f5078d432134c3bb0f3aa3ca2eaaca763041004ab982997f8f44b9a58
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frma-lightgray.png?logo=github
20+
:target: https://github.com/OCA/rma/tree/16.0/rma_reason
21+
:alt: OCA/rma
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/rma-16-0/rma-16-0-rma_reason
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/rma&target_branch=16.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
Specifying the RMA reason when creating an RMA order is crucial for
32+
effective inventory management, quality control, and customer service.
33+
It helps categorize returned items accurately, identify recurring
34+
product issues, and improve overall product quality. This data enables
35+
customer service to address issues more effectively and enhances the
36+
customer experience.
37+
38+
This addon allows RMA managers to pre-configure possible reasons users
39+
can specify when creating the RMA order.
40+
41+
In a multi-company setup, each company can define its own reasons and
42+
choose to make the reason mandatory or optional.
43+
44+
**Table of contents**
45+
46+
.. contents::
47+
:local:
48+
49+
Configuration
50+
=============
51+
52+
To configure this module, you need to:
53+
54+
- Go to **Inventory > Settings > Settings** and select whether the
55+
reason is mandatory or not.
56+
- Go to **RMA > Settings > RMA Reasons** and create the RMA reasons for
57+
your company.
58+
59+
Usage
60+
=====
61+
62+
When creating an RMA, select the reason for the return.
63+
64+
Bug Tracker
65+
===========
66+
67+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/rma/issues>`_.
68+
In case of trouble, please check there if your issue has already been reported.
69+
If you spotted it first, help us to smash it by providing a detailed and welcomed
70+
`feedback <https://github.com/OCA/rma/issues/new?body=module:%20rma_reason%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
71+
72+
Do not contact contributors directly about support or help with technical issues.
73+
74+
Credits
75+
=======
76+
77+
Authors
78+
-------
79+
80+
* Raumschmiede GmbH
81+
* BCIM
82+
* ACSONE SA/NV
83+
84+
Contributors
85+
------------
86+
87+
- Jacques-Etienne Baudoux - BCIM [email protected]
88+
- Souheil Bejaoui - ACSONE SA/NV [email protected]
89+
90+
Maintainers
91+
-----------
92+
93+
This module is maintained by the OCA.
94+
95+
.. image:: https://odoo-community.org/logo.png
96+
:alt: Odoo Community Association
97+
:target: https://odoo-community.org
98+
99+
OCA, or the Odoo Community Association, is a nonprofit organization whose
100+
mission is to support the collaborative development of Odoo features and
101+
promote its widespread use.
102+
103+
.. |maintainer-sbejaoui| image:: https://github.com/sbejaoui.png?size=40px
104+
:target: https://github.com/sbejaoui
105+
:alt: sbejaoui
106+
107+
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
108+
109+
|maintainer-sbejaoui|
110+
111+
This module is part of the `OCA/rma <https://github.com/OCA/rma/tree/16.0/rma_reason>`_ project on GitHub.
112+
113+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

rma_reason/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models

rma_reason/__manifest__.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Copyright 2024 Raumschmiede GmbH
2+
# Copyright 2024 BCIM
3+
# Copyright 2024 ACSONE SA/NV
4+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5+
6+
{
7+
"name": "Rma Reason",
8+
"version": "16.0.1.0.0",
9+
"license": "AGPL-3",
10+
"author": "Raumschmiede GmbH,BCIM,ACSONE SA/NV,Odoo Community Association (OCA)",
11+
"website": "https://github.com/OCA/rma",
12+
"depends": ["rma"],
13+
"maintainers": ["sbejaoui"],
14+
"data": [
15+
"security/rma_reason.xml",
16+
"views/rma.xml",
17+
"views/rma_reason.xml",
18+
"views/res_config_settings.xml",
19+
],
20+
"demo": [
21+
"demo/rma_reason.xml",
22+
],
23+
}

rma_reason/demo/rma_reason.xml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<!-- Copyright 2024 Raumschmiede GmbH
3+
Copyright 2024 BCIM
4+
Copyright 2024 ACSONE SA/NV
5+
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
6+
<odoo noupdate="1">
7+
8+
<record model="rma.reason" id="rma_reason_defective_product">
9+
<field name="name">Defective Product</field>
10+
<field
11+
name="description"
12+
>The item is malfunctioning or has a defect that affects its intended use.</field>
13+
</record>
14+
15+
<record model="rma.reason" id="rma_reason_wrong_item_shipped">
16+
<field name="name">Wrong Item Shipped</field>
17+
<field
18+
name="description"
19+
>The customer received a different product than what they ordered.</field>
20+
</record>
21+
22+
<record model="rma.reason" id="rma_reason_damaged_in_transit">
23+
<field name="name">Damaged in Transit</field>
24+
<field
25+
name="description"
26+
>The product was damaged during shipping and is not in usable condition upon arrival.</field>
27+
</record>
28+
29+
<record model="rma.reason" id="rma_reason_unwanted_changed_mind">
30+
<field name="name">Unwanted/Changed Mind</field>
31+
<field
32+
name="description"
33+
>The customer no longer wants the item or changed their mind after purchasing it.</field>
34+
</record>
35+
36+
<record model="rma.reason" id="rma_reason_not_as_described">
37+
<field name="name">Product Not as Described</field>
38+
<field
39+
name="description"
40+
>The item does not match the description or specifications provided by the seller, leading to customer dissatisfaction.</field>
41+
</record>
42+
43+
</odoo>

rma_reason/models/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from . import rma_reason
2+
from . import rma
3+
from . import res_company
4+
from . import res_config_settings

rma_reason/models/res_company.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Copyright 2024 Raumschmiede GmbH
2+
# Copyright 2024 BCIM
3+
# Copyright 2024 ACSONE SA/NV
4+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5+
6+
from odoo import fields, models
7+
8+
9+
class ResCompany(models.Model):
10+
11+
_inherit = "res.company"
12+
13+
is_rma_reason_required = fields.Boolean(
14+
string="Indicates whether specifying an RMA reason is mandatory when creating "
15+
"an RMA order."
16+
)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright 2024 Raumschmiede GmbH
2+
# Copyright 2024 BCIM
3+
# Copyright 2024 ACSONE SA/NV
4+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5+
6+
from odoo import fields, models
7+
8+
9+
class ResConfigSettings(models.TransientModel):
10+
11+
_inherit = "res.config.settings"
12+
13+
is_rma_reason_required = fields.Boolean(related="company_id.is_rma_reason_required")

rma_reason/models/rma.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Copyright 2024 Raumschmiede GmbH
2+
# Copyright 2024 BCIM
3+
# Copyright 2024 ACSONE SA/NV
4+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5+
6+
from odoo import fields, models
7+
8+
9+
class Rma(models.Model):
10+
11+
_inherit = "rma"
12+
13+
reason_id = fields.Many2one(comodel_name="rma.reason")
14+
is_rma_reason_required = fields.Boolean(related="company_id.is_rma_reason_required")

rma_reason/models/rma_reason.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright 2024 Raumschmiede GmbH
2+
# Copyright 2024 BCIM
3+
# Copyright 2024 ACSONE SA/NV
4+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5+
6+
from odoo import fields, models
7+
8+
9+
class RmaReason(models.Model):
10+
11+
_name = "rma.reason"
12+
_description = "Rma Reason"
13+
14+
name = fields.Char(required=True, translate=True)
15+
description = fields.Text()
16+
company_id = fields.Many2one(
17+
"res.company",
18+
required=True,
19+
readonly=True,
20+
default=lambda self: self.env.company,
21+
translate=True,
22+
)

rma_reason/readme/CONFIGURE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
To configure this module, you need to:
2+
3+
- Go to **Inventory > Settings > Settings** and select whether the reason is mandatory or not.
4+
- Go to **RMA > Settings > RMA Reasons** and create the RMA reasons for your company.

0 commit comments

Comments
 (0)