Skip to content

Commit

Permalink
[17.0][ADD] rma_repair: New module rma_repair
Browse files Browse the repository at this point in the history
  • Loading branch information
peluko00 committed Oct 23, 2024
1 parent 21d508a commit ab490bd
Show file tree
Hide file tree
Showing 19 changed files with 700 additions and 0 deletions.
103 changes: 103 additions & 0 deletions rma_repair/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
==========
RMA Repair
==========

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:d57904497da0fe7e41281b4e3172ce6a3eb30608b24d9474e79c2813f27d6161
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frma-lightgray.png?logo=github
:target: https://github.com/OCA/rma/tree/17.0/rma_repair
:alt: OCA/rma
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/rma-17-0/rma-17-0-rma_repair
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/rma&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module allows to create a repair order from RMA and depends of the
repair if it's success can return the article to customer otherwise make
a refund or replace for a new product.

**Table of contents**

.. contents::
:local:

Usage
=====

To use this module, you need to:

Create a RMA:

1. Go to RMA > New rma.
2. Create new rma, confirm it and receipt the products.
3. Create a repair order from the header button called "Create Repair
Order"

You can access from rma to repair order directly with a smart button and
the same backwards.

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/rma/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/rma/issues/new?body=module:%20rma_repair%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
-------

* Antoni Marroig

Contributors
------------

- `APSL-Nagarro <https://www.apsl.tech>`__:

- Antoni Marroig <[email protected]>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-peluko00| image:: https://github.com/peluko00.png?size=40px
:target: https://github.com/peluko00
:alt: peluko00

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-peluko00|

This module is part of the `OCA/rma <https://github.com/OCA/rma/tree/17.0/rma_repair>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions rma_repair/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
19 changes: 19 additions & 0 deletions rma_repair/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2024 APSL-Nagarro Antoni Marroig
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "RMA Repair",
"summary": "Create a repair order from rma",
"version": "17.0.1.0.0",
"category": "RMA",
"website": "https://github.com/OCA/rma",
"author": "Antoni Marroig, Odoo Community Association (OCA)",
"maintainers": ["peluko00"],
"license": "AGPL-3",
"application": False,
"installable": True,
"depends": ["rma_lot", "repair"],
"data": [
"views/rma_views.xml",
"views/repair_views.xml",
],
}
54 changes: 54 additions & 0 deletions rma_repair/i18n/ca.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_repair
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-21 11:01+0000\n"
"PO-Revision-Date: 2024-10-21 11:01+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: rma_repair
#: model_terms:ir.ui.view,arch_db:rma_repair.view_repair_order_form_inherit
msgid "<span class=\"o_stat_text\">RMA</span>"
msgstr ""

#. module: rma_repair
#: model_terms:ir.ui.view,arch_db:rma_repair.rma_view_form
msgid "<span class=\"o_stat_text\">Repair order</span>"
msgstr "<span class=\"o_stat_text\">Ordre de Reparació</span>"

#. module: rma_repair
#. odoo-python
#: code:addons/rma_repair/models/rma.py:0
#: model_terms:ir.ui.view,arch_db:rma_repair.rma_view_form
#, python-format
msgid "Create Repair Order"
msgstr "Crear Ordre de Reparació"

#. module: rma_repair
#: model:ir.model,name:rma_repair.model_rma
msgid "RMA"
msgstr ""

#. module: rma_repair
#: model:ir.model.fields,field_description:rma_repair.field_repair_order__rma_ids
msgid "RMAs"
msgstr ""

#. module: rma_repair
#: model:ir.model.fields,field_description:rma_repair.field_rma__repair_id
msgid "Repair"
msgstr "Reparació"

#. module: rma_repair
#: model:ir.model,name:rma_repair.model_repair_order
msgid "Repair Order"
msgstr "Ordre de reparació"
54 changes: 54 additions & 0 deletions rma_repair/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * rma_repair
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-21 11:01+0000\n"
"PO-Revision-Date: 2024-10-21 11:01+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: rma_repair
#: model_terms:ir.ui.view,arch_db:rma_repair.view_repair_order_form_inherit
msgid "<span class=\"o_stat_text\">RMA</span>"
msgstr ""

#. module: rma_repair
#: model_terms:ir.ui.view,arch_db:rma_repair.rma_view_form
msgid "<span class=\"o_stat_text\">Repair order</span>"
msgstr "<span class=\"o_stat_text\">Orden de Reparación</span>"

#. module: rma_repair
#. odoo-python
#: code:addons/rma_repair/models/rma.py:0
#: model_terms:ir.ui.view,arch_db:rma_repair.rma_view_form
#, python-format
msgid "Create Repair Order"
msgstr "Crear Orden de Reparación"

#. module: rma_repair
#: model:ir.model,name:rma_repair.model_rma
msgid "RMA"
msgstr ""

#. module: rma_repair
#: model:ir.model.fields,field_description:rma_repair.field_repair_order__rma_ids
msgid "RMAs"
msgstr ""

#. module: rma_repair
#: model:ir.model.fields,field_description:rma_repair.field_rma__repair_id
msgid "Repair"
msgstr "Reparación"

#. module: rma_repair
#: model:ir.model,name:rma_repair.model_repair_order
msgid "Repair Order"
msgstr "Orden de reparación"
4 changes: 4 additions & 0 deletions rma_repair/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import rma
from . import repair
23 changes: 23 additions & 0 deletions rma_repair/models/repair.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Copyright 2024 APSL-Nagarro Antoni Marroig
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import fields, models


class RepairOrder(models.Model):
_inherit = "repair.order"

rma_ids = fields.One2many(
comodel_name="rma",
inverse_name="repair_id",
string="RMAs",
)

def action_view_repair_rma(self):
return {
"name": "RMAs - " + self.name,
"type": "ir.actions.act_window",
"view_mode": "tree,form",
"res_model": "rma",
"domain": [("id", "in", self.rma_ids.ids)],
}
67 changes: 67 additions & 0 deletions rma_repair/models/rma.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Copyright 2024 APSL-Nagarro Antoni Marroig
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import _, api, fields, models


class RMA(models.Model):
_inherit = "rma"

repair_id = fields.Many2one("repair.order")

@api.depends("repair_id.state")
def _compute_can_be_returned(self):
res = super()._compute_can_be_returned()
for r in self:
r.can_be_returned = r.can_be_returned and (
not r.repair_id or r.repair_id.state == "done"
)
return res

@api.depends("repair_id.state")
def _compute_can_be_replaced(self):
res = super()._compute_can_be_replaced()
for r in self:
r.can_be_replaced = r.can_be_replaced and (
not r.repair_id or r.repair_id.state == "cancel"
)
return res

@api.depends("repair_id.state")
def _compute_can_be_refunded(self):
res = super()._compute_can_be_refunded()
for r in self:
r.can_be_refunded = r.can_be_refunded and (
not r.repair_id or r.repair_id.state == "cancel"
)
return res

def action_create_repair_order(self):
self.ensure_one()
action = self.env["ir.actions.act_window"]._for_xml_id(
"repair.action_repair_order_form"
)
action.update(
{
"view_mode": "form",
"views": [(False, "form")],
"name": _("Create Repair Order"),
"context": {
"default_rma_ids": [self.id],
"default_product_id": self.product_id.id,
"default_location_id": self.location_id.id,
"default_partner_id": self.partner_id.id,
},
}
)
if self.lot_id:
action["context"]["default_lot_id"] = self.lot_id.id

Check warning on line 58 in rma_repair/models/rma.py

View check run for this annotation

Codecov / codecov/patch

rma_repair/models/rma.py#L58

Added line #L58 was not covered by tests
return action

def action_view_rma_repair_order(self):
return {
"type": "ir.actions.act_window",
"view_mode": "form",
"res_model": "repair.order",
"res_id": self.repair_id.id,
}
3 changes: 3 additions & 0 deletions rma_repair/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
2 changes: 2 additions & 0 deletions rma_repair/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- [APSL-Nagarro](https://www.apsl.tech):
- Antoni Marroig \<<[email protected]>\>
2 changes: 2 additions & 0 deletions rma_repair/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
This module allows to create a repair order from RMA and depends of the repair if it's success can return the article to customer otherwise make a refund or replace for a new product.

11 changes: 11 additions & 0 deletions rma_repair/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
To use this module, you need to:

Create a RMA:

1. Go to RMA \> New rma.
2. Create new rma, confirm it and receipt the products.
3. Create a repair order from the header button called "Create Repair
Order"

You can access from rma to repair order directly with a
smart button and the same backwards.
Binary file added rma_repair/static/description/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit ab490bd

Please sign in to comment.