Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
167 changes: 167 additions & 0 deletions maintenance_equipment_spareparts/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
=================================
Maintenance Equipment Spare Parts
=================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:e9ba4026a2fd2a8e524abcfac0f4d28de45177ff8574cd0c8a7e44172388d2d7
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fmaintenance-lightgray.png?logo=github
:target: https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_spareparts
:alt: OCA/maintenance
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/maintenance-18-0/maintenance-18-0-maintenance_equipment_spareparts
: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/maintenance&target_branch=18.0
:alt: Try me on Runboat

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

This module manages spare parts for maintenance equipment, allowing you
to:

- Define spare parts for each equipment with installed and recommended
spare quantities
- Track spare parts consumption during maintenance requests
- Automatically create stock movements when spare parts are consumed (if
stock is available)
- Automatically create purchase requests when spare parts are needed but
not in stock
- Restrict purchase requisitions to only registered spare parts for the
selected equipment
- Monitor stock levels and alert when quantities fall below recommended
spare quantities

**Table of contents**

.. contents::
:local:

Usage
=====

Equipment Spare Parts
=====================

To manage spare parts for an equipment:

- Go to *Maintenance > Equipments* and open an equipment form
- Click on the *Spare Parts* tab
- Click *Add a line* to add a new spare part
- Select a *Product* from the catalog
- Enter the *Installed Quantity* (quantity used by the equipment)
- Enter the *Recommended Spare Quantity* (minimum quantity to keep in
stock)
- Save the record

The system will automatically calculate and display:

- Available quantity in stock
- Alert indicator when stock falls below recommended spare quantity

Adding Spare Parts During Maintenance
=====================================

When performing maintenance:

- Create or open a maintenance request for an equipment
- Go to the *Spare Parts* section
- If you identify a spare part that is not yet registered, you can add
it directly from the request
- The spare part will be automatically added to the equipment's spare
parts list

Consuming Spare Parts
=====================

During maintenance, you can consume spare parts:

- In a maintenance request, click *Consume Spare Parts*
- A wizard will open showing all spare parts for the equipment
- Enter the quantity needed for each spare part
- Click *Consume*

The system will:

- If stock is available: automatically create a stock picking and
movement
- If stock is not available: automatically create a purchase request
with the needed quantity

Purchase Requisition Integration
================================

When creating a purchase requisition for equipment spare parts:

- Select the equipment in the purchase requisition form
- The product selection will be restricted to only spare parts
registered for that equipment
- You cannot add products that are not registered as spare parts for the
selected equipment
- If you try to add a non-registered product, the system will prevent it
and inform you that the product must be registered as a spare part
first

Stock Alerts
============

The system monitors spare parts stock levels:

- When the available quantity falls below the recommended spare
quantity, an alert indicator is shown
- You can use the *Create Purchase Request* button to automatically
generate a purchase request for all parts needing replenishment

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/maintenance/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/maintenance/issues/new?body=module:%20maintenance_equipment_spareparts%0Aversion:%2018.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
-------

* KMEE

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

Contributors
~~~~~~~~~~~~

- Luis Felipe Miléo [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.

This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/18.0/maintenance_equipment_spareparts>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions maintenance_equipment_spareparts/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizards
30 changes: 30 additions & 0 deletions maintenance_equipment_spareparts/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright 2024 Odoo Community Association (OCA)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Maintenance Equipment Spare Parts",
"summary": "Manage spare parts for maintenance equipment with "
"purchase requisition integration",
"version": "18.0.1.0.0",
"category": "Maintenance",
"website": "https://github.com/OCA/maintenance",
"author": "KMEE, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": [
"base_maintenance",
"maintenance_product",
"maintenance_stock",
"purchase_request",
"stock",
],
"data": [
"security/ir.model.access.csv",
"views/maintenance_equipment_sparepart_views.xml",
"views/maintenance_equipment_views.xml",
"views/maintenance_request_sparepart_consumption_views.xml",
"views/maintenance_request_views.xml",
"views/purchase_request_views.xml",
"wizards/maintenance_request_consume_spareparts_wizard.xml",
],
"installable": True,
"development_status": "Beta",
}
116 changes: 116 additions & 0 deletions maintenance_equipment_spareparts/i18n/pt_BR.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * maintenance_equipment_spareparts
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \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: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_equipment__sparepart_count
msgid "Spare Parts Count"
msgstr "Quantidade de Peças"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_equipment__sparepart_ids
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_request__sparepart_ids
msgid "Spare Parts"
msgstr "Peças"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__available_qty
msgid "Available Quantity"
msgstr "Quantidade Disponível"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__installed_qty
msgid "Installed Quantity"
msgstr "Quantidade Instalada"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__needs_reorder
msgid "Needs Reorder"
msgstr "Precisa Repor"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__spare_qty
msgid "Recommended Spare Quantity"
msgstr "Quantidade Sobressalente Recomendada"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__consumed_qty
msgid "Consumed Quantity"
msgstr "Quantidade Consumida"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__state
msgid "State"
msgstr "Estado"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__stock_picking_id
msgid "Stock Picking"
msgstr "Movimentação de Estoque"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__purchase_request_id
msgid "Purchase Request"
msgstr "Requisição de Compra"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_purchase_request__equipment_id
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_purchase_request_line__equipment_id
msgid "Equipment"
msgstr "Equipamento"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,field_description:maintenance_equipment_spareparts.field_maintenance_request__sparepart_consumption_ids
msgid "Spare Parts Consumption"
msgstr "Consumo de Peças"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__available_qty
msgid "Available quantity in stock"
msgstr "Quantidade disponível em estoque"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__needs_reorder
msgid "True if stock is below recommended spare quantity"
msgstr "Verdadeiro se o estoque está abaixo da quantidade sobressalente recomendada"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__installed_qty
msgid "Quantity of this part installed in the equipment"
msgstr "Quantidade desta peça instalada no equipamento"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_equipment_sparepart__spare_qty
msgid "Recommended quantity to keep in stock as spare"
msgstr "Quantidade recomendada para manter em estoque como sobressalente"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_purchase_request__equipment_id
msgid "When set, product selection will be restricted to spare parts registered for this equipment"
msgstr "Quando definido, a seleção de produtos será restrita às peças registradas para este equipamento"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__stock_picking_id
msgid "Stock picking created when part was consumed from stock"
msgstr "Movimentação de estoque criada quando a peça foi consumida do estoque"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__purchase_request_id
msgid "Purchase request created when part was not in stock"
msgstr "Requisição de compra criada quando a peça não estava em estoque"

#. module: maintenance_equipment_spareparts
#: model:ir.model.fields,help:maintenance_equipment_spareparts.field_maintenance_request_sparepart_consumption__purchase_request_line_id
msgid "Purchase request line created when part was not in stock"
msgstr "Linha de requisição de compra criada quando a peça não estava em estoque"
5 changes: 5 additions & 0 deletions maintenance_equipment_spareparts/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from . import maintenance_equipment_sparepart
from . import maintenance_equipment
from . import maintenance_request
from . import maintenance_request_sparepart_consumption
from . import purchase_request
Loading