Skip to content

Commit

Permalink
[IMP] rma: black, isort, prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronHForgeFlow committed May 6, 2024
1 parent 6f9117d commit 3ee23e0
Show file tree
Hide file tree
Showing 16 changed files with 707 additions and 157 deletions.
162 changes: 93 additions & 69 deletions rma/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,42 @@
RMA (Return Merchandise Authorization)
======================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:51ec7a60674dede1504836e5881ee8a0f776b770dcc8238dce37e8376e5c4301
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-ForgeFlow%2Fstock--rma-lightgray.png?logo=github
:target: https://github.com/ForgeFlow/stock-rma/tree/17.0/rma
:alt: ForgeFlow/stock-rma

|badge1| |badge2| |badge3|

A Return Merchandise Authorization (RMA), is a part of the process of
returning a product in order to receive a refund, replacement, or repair
during the product's warranty period.

The purchaser of the product must contact the manufacturer (or distributor
or retailer) to obtain authorization to return the product.
The purchaser of the product must contact the manufacturer (or
distributor or retailer) to obtain authorization to return the product.

The resulting RMA number must be displayed on or included in the returned
product's packaging.
The resulting RMA number must be displayed on or included in the
returned product's packaging.

The issuance of an RMA is a key gatekeeping moment in the reverse logistics
cycle, providing the vendor with a final opportunity to diagnose and correct
the customer's problem with the product (such as improper installation or
configuration) before the customer permanently relinquishes ownership
of the product to the manufacturer, commonly referred to as a return.
The issuance of an RMA is a key gatekeeping moment in the reverse
logistics cycle, providing the vendor with a final opportunity to
diagnose and correct the customer's problem with the product (such as
improper installation or configuration) before the customer permanently
relinquishes ownership of the product to the manufacturer, commonly
referred to as a return.

As returns are costly for the vendor and inconvenient for the customer,
any return that can be prevented benefits both parties.
Expand All @@ -30,107 +51,110 @@ Configuration
=============

Security
~~~~~~~~
--------

Go to Settings > Users and assign the appropiate permissions to users.
Different security groups grant distinct levels of access to the RMA features.

* Users in group "RMA Customer User" or "RMA Supplier User" can access to,
create and process RMA's associated to customers or suppliers respectively.
Different security groups grant distinct levels of access to the RMA
features.

* Users in group "RMA Manager" can access to, create, approve and process RMA's
associated to both customers and suppliers.
- Users in group "RMA Customer User" or "RMA Supplier User" can access
to, create and process RMA's associated to customers or suppliers
respectively.
- Users in group "RMA Manager" can access to, create, approve and
process RMA's associated to both customers and suppliers.

RMA Approval Policy
~~~~~~~~~~~~~~~~~~~
-------------------

There are two RMA approval policies in product catogories:

* One step: Always auto-approve RMAs that only contain products within
categories with this policy.
* Two steps: A RMA order containing a product within a category with this
policy will request the RMA manager approval.
- One step: Always auto-approve RMAs that only contain products within
categories with this policy.
- Two steps: A RMA order containing a product within a category with
this policy will request the RMA manager approval.

In order to change the approval policy of a product category follow the next
steps:
In order to change the approval policy of a product category follow the
next steps:

#. Go to *Inventory > Configuration > Products > Product Categories*.
#. Select one and change the field *RMA Approval Policy* to your convenience.
1. Go to *Inventory > Configuration > Products > Product Categories*.
2. Select one and change the field *RMA Approval Policy* to your
convenience.

Other Settings
~~~~~~~~~~~~~~

#. Go to RMA > Configuration > Settings > Return Merchandising
Authorization and select the option "Display 3 fields on rma: partner,
invoice address, delivery address" if needed.
#. Go to RMA > Configuration > Warehouse management > Warehouses and add
a default RMA location and RMA picking type for customers and suppliers RMA
picking type. In case the warehouse is configured to use routes, you need to
create at least one route per rma type with at least two push rules (one for
inbound another for outbound) it's very important to select the type of
operation supplier if we are moving in the company and customer if we are
moving out of the company.
--------------

1. Go to RMA > Configuration > Settings > Return Merchandising
Authorization and select the option "Display 3 fields on rma:
partner, invoice address, delivery address" if needed.
2. Go to RMA > Configuration > Warehouse management > Warehouses and add
a default RMA location and RMA picking type for customers and
suppliers RMA picking type. In case the warehouse is configured to
use routes, you need to create at least one route per rma type with
at least two push rules (one for inbound another for outbound) it's
very important to select the type of operation supplier if we are
moving in the company and customer if we are moving out of the
company.

Usage
=====

RMA are accessible though Inventory menu. There's four menus, divided by type.
Users can access to the list of RMA or RMA lines.
RMA are accessible though Inventory menu. There's four menus, divided by
type. Users can access to the list of RMA or RMA lines.

Create an RMA:

#. Select a partner. Enter RMA lines associated to an existing picking, or
manually.
#. Request approval and approve.
#. Click on RMA Lines button.
#. Click on more and select an option: "Receive products", "Create Delivery
Order".
#. Go back to the RMA. Set the RMA to done if not further action is required.
1. Select a partner. Enter RMA lines associated to an existing picking,
or manually.
2. Request approval and approve.
3. Click on RMA Lines button.
4. Click on more and select an option: "Receive products", "Create
Delivery Order".
5. Go back to the RMA. Set the RMA to done if not further action is
required.

Known issues / Roadmap
======================

* Picking operations report in customer RMA dropshipping case is showing
"Vendor Address" while it should be "Customer Address".
* Dropshipping always counted as a delivery on the smart buttons.
* Uninstall hook.
* Constraints instead of required fields on rma.order.line.
* Rename type field on rma.order and rma.order.line
- Picking operations report in customer RMA dropshipping case is
showing "Vendor Address" while it should be "Customer Address".
- Dropshipping always counted as a delivery on the smart buttons.
- Uninstall hook.
- Constraints instead of required fields on rma.order.line.
- Rename type field on rma.order and rma.order.line

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/ForgeFlow/stock-rma/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 <https://github.com/ForgeFlow/stock-rma/issues/new?body=module:%20rma%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/ForgeFlow/stock-rma/issues/new?body=module:%20rma%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~
-------

* ForgeFlow S.L.
* ForgeFlow

Contributors
~~~~~~~~~~~~
------------

* Jordi Ballester Alomar <[email protected]>
* Aaron Henriquez <[email protected]>
* Lois Rilo <[email protected]>
* Bhavesh Odedra <[email protected]>
* Akim Juillerat <[email protected]>
* Alexandre Fayolle <[email protected]>
* Chafique Delli <[email protected]>
* Héctor Villarreal <[email protected]>
- Jordi Ballester Alomar <[email protected]>
- Aaron Henriquez <[email protected]>
- Lois Rilo <[email protected]>
- Bhavesh Odedra <[email protected]>
- Akim Juillerat <[email protected]>
- Alexandre Fayolle <[email protected]>
- Chafique Delli <[email protected]>
- Héctor Villarreal <[email protected]>

Maintainers
~~~~~~~~~~~

This module is maintained by the ForgeFlow.
-----------

This module is part of the `ForgeFlow/stock-rma <https://github.com/ForgeFlow/stock-rma/tree/13.0/rma>`_ project on GitHub.
This module is part of the `ForgeFlow/stock-rma <https://github.com/ForgeFlow/stock-rma/tree/17.0/rma>`_ project on GitHub.

You are welcome to contribute.
2 changes: 1 addition & 1 deletion rma/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"category": "RMA",
"summary": "Introduces the return merchandise authorization (RMA) process in odoo",
"author": "ForgeFlow",
"website": "https://github.com/ForgeFlow/stock-rma",
"website": "https://github.com/ForgeFlow",
"depends": ["stock", "mail", "web"],
"demo": ["demo/stock_demo.xml"],
"data": [
Expand Down
3 changes: 3 additions & 0 deletions rma/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
42 changes: 42 additions & 0 deletions rma/readme/CONFIGURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
## Security

Go to Settings \> Users and assign the appropiate permissions to users.
Different security groups grant distinct levels of access to the RMA
features.

- Users in group "RMA Customer User" or "RMA Supplier User" can access
to, create and process RMA's associated to customers or suppliers
respectively.
- Users in group "RMA Manager" can access to, create, approve and
process RMA's associated to both customers and suppliers.

## RMA Approval Policy

There are two RMA approval policies in product catogories:

- One step: Always auto-approve RMAs that only contain products within
categories with this policy.
- Two steps: A RMA order containing a product within a category with
this policy will request the RMA manager approval.

In order to change the approval policy of a product category follow the
next steps:

1. Go to *Inventory \> Configuration \> Products \> Product
Categories*.
2. Select one and change the field *RMA Approval Policy* to your
convenience.

## Other Settings

1. Go to RMA \> Configuration \> Settings \> Return Merchandising
Authorization and select the option "Display 3 fields on rma:
partner, invoice address, delivery address" if needed.
2. Go to RMA \> Configuration \> Warehouse management \> Warehouses and
add a default RMA location and RMA picking type for customers and
suppliers RMA picking type. In case the warehouse is configured to
use routes, you need to create at least one route per rma type with
at least two push rules (one for inbound another for outbound) it's
very important to select the type of operation supplier if we are
moving in the company and customer if we are moving out of the
company.
41 changes: 0 additions & 41 deletions rma/readme/CONFIGURE.rst

This file was deleted.

8 changes: 8 additions & 0 deletions rma/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
- Jordi Ballester Alomar \<<[email protected]>\>
- Aaron Henriquez \<<[email protected]>\>
- Lois Rilo \<<[email protected]>\>
- Bhavesh Odedra \<<[email protected]>\>
- Akim Juillerat \<<[email protected]>\>
- Alexandre Fayolle \<<[email protected]>\>
- Chafique Delli \<<[email protected]>\>
- Héctor Villarreal \<<[email protected]>\>
8 changes: 0 additions & 8 deletions rma/readme/CONTRIBUTORS.rst

This file was deleted.

19 changes: 19 additions & 0 deletions rma/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
A Return Merchandise Authorization (RMA), is a part of the process of
returning a product in order to receive a refund, replacement, or repair
during the product's warranty period.

The purchaser of the product must contact the manufacturer (or
distributor or retailer) to obtain authorization to return the product.

The resulting RMA number must be displayed on or included in the
returned product's packaging.

The issuance of an RMA is a key gatekeeping moment in the reverse
logistics cycle, providing the vendor with a final opportunity to
diagnose and correct the customer's problem with the product (such as
improper installation or configuration) before the customer permanently
relinquishes ownership of the product to the manufacturer, commonly
referred to as a return.

As returns are costly for the vendor and inconvenient for the customer,
any return that can be prevented benefits both parties.
18 changes: 0 additions & 18 deletions rma/readme/DESCRIPTION.rst

This file was deleted.

6 changes: 6 additions & 0 deletions rma/readme/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
- Picking operations report in customer RMA dropshipping case is showing
"Vendor Address" while it should be "Customer Address".
- Dropshipping always counted as a delivery on the smart buttons.
- Uninstall hook.
- Constraints instead of required fields on rma.order.line.
- Rename type field on rma.order and rma.order.line
6 changes: 0 additions & 6 deletions rma/readme/ROADMAP.rst

This file was deleted.

Loading

0 comments on commit 3ee23e0

Please sign in to comment.