odoo-addon-maintenance-purchase 16.0.1.0.0.3__py3-none-any.whl → 18.0.1.0.0.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/maintenance_purchase/README.rst +16 -13
- odoo/addons/maintenance_purchase/__manifest__.py +3 -3
- odoo/addons/maintenance_purchase/i18n/maintenance_purchase.pot +12 -1
- odoo/addons/maintenance_purchase/migrations/18.0.1.0.0/post-migration.py +20 -0
- odoo/addons/maintenance_purchase/models/__init__.py +1 -0
- odoo/addons/maintenance_purchase/models/maintenance_equipment.py +0 -1
- odoo/addons/maintenance_purchase/models/product_template.py +12 -0
- odoo/addons/maintenance_purchase/models/purchase_order.py +38 -52
- odoo/addons/maintenance_purchase/readme/CONTRIBUTORS.md +1 -0
- odoo/addons/maintenance_purchase/static/description/index.html +25 -17
- odoo/addons/maintenance_purchase/tests/test_purchase_order.py +6 -48
- odoo/addons/maintenance_purchase/views/maintenance_equipment.xml +5 -3
- odoo/addons/maintenance_purchase/views/product_template_view.xml +13 -0
- odoo/addons/maintenance_purchase/views/purchase_order.xml +2 -6
- {odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info → odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info}/METADATA +22 -19
- odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info/RECORD +25 -0
- {odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info → odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info}/WHEEL +1 -1
- odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info/top_level.txt +1 -0
- odoo/addons/maintenance_purchase/readme/CONTRIBUTORS.rst +0 -1
- odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info/RECORD +0 -22
- odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info/top_level.txt +0 -1
- /odoo/addons/maintenance_purchase/readme/{DESCRIPTION.rst → DESCRIPTION.md} +0 -0
|
@@ -1,29 +1,33 @@
|
|
|
1
|
+
.. image:: https://odoo-community.org/readme-banner-image
|
|
2
|
+
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
3
|
+
:alt: Odoo Community Association
|
|
4
|
+
|
|
1
5
|
====================
|
|
2
6
|
Maintenance Purchase
|
|
3
7
|
====================
|
|
4
8
|
|
|
5
|
-
..
|
|
9
|
+
..
|
|
6
10
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
7
11
|
!! This file is generated by oca-gen-addon-readme !!
|
|
8
12
|
!! changes will be overwritten. !!
|
|
9
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
10
|
-
!! source digest: sha256:
|
|
14
|
+
!! source digest: sha256:4081bc034b7ce0eb90fe184d22c1b65887263032ae7db862470be512e902124c
|
|
11
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
16
|
|
|
13
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
14
18
|
:target: https://odoo-community.org/page/development-status
|
|
15
19
|
:alt: Beta
|
|
16
|
-
.. |badge2| image:: https://img.shields.io/badge/
|
|
20
|
+
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
|
|
17
21
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
|
18
22
|
:alt: License: AGPL-3
|
|
19
23
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github
|
|
20
|
-
:target: https://github.com/OCA/maintenance/tree/
|
|
24
|
+
:target: https://github.com/OCA/maintenance/tree/18.0/maintenance_purchase
|
|
21
25
|
:alt: OCA/maintenance
|
|
22
26
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
23
|
-
:target: https://translation.odoo-community.org/projects/maintenance-
|
|
27
|
+
:target: https://translation.odoo-community.org/projects/maintenance-18-0/maintenance-18-0-maintenance_purchase
|
|
24
28
|
:alt: Translate me on Weblate
|
|
25
29
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
|
26
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=
|
|
30
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=18.0
|
|
27
31
|
:alt: Try me on Runboat
|
|
28
32
|
|
|
29
33
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
@@ -41,7 +45,7 @@ Bug Tracker
|
|
|
41
45
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/maintenance/issues>`_.
|
|
42
46
|
In case of trouble, please check there if your issue has already been reported.
|
|
43
47
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
44
|
-
`feedback <https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_purchase%0Aversion:%
|
|
48
|
+
`feedback <https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_purchase%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
|
45
49
|
|
|
46
50
|
Do not contact contributors directly about support or help with technical issues.
|
|
47
51
|
|
|
@@ -49,18 +53,17 @@ Credits
|
|
|
49
53
|
=======
|
|
50
54
|
|
|
51
55
|
Authors
|
|
52
|
-
|
|
56
|
+
-------
|
|
53
57
|
|
|
54
58
|
* CreuBlanca
|
|
55
59
|
|
|
56
60
|
Contributors
|
|
57
|
-
|
|
61
|
+
------------
|
|
58
62
|
|
|
59
|
-
|
|
60
|
-
* Laurent Stukkens
|
|
63
|
+
- Enric Tobella
|
|
61
64
|
|
|
62
65
|
Maintainers
|
|
63
|
-
|
|
66
|
+
-----------
|
|
64
67
|
|
|
65
68
|
This module is maintained by the OCA.
|
|
66
69
|
|
|
@@ -72,6 +75,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
|
72
75
|
mission is to support the collaborative development of Odoo features and
|
|
73
76
|
promote its widespread use.
|
|
74
77
|
|
|
75
|
-
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/
|
|
78
|
+
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/18.0/maintenance_purchase>`_ project on GitHub.
|
|
76
79
|
|
|
77
80
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
"name": "Maintenance Purchase",
|
|
6
6
|
"summary": """
|
|
7
7
|
Create Equipments with purchases""",
|
|
8
|
-
"version": "
|
|
8
|
+
"version": "18.0.1.0.0",
|
|
9
9
|
"license": "AGPL-3",
|
|
10
10
|
"author": "CreuBlanca,Odoo Community Association (OCA)",
|
|
11
11
|
"website": "https://github.com/OCA/maintenance",
|
|
12
12
|
"depends": [
|
|
13
|
-
"
|
|
14
|
-
"purchase_stock",
|
|
13
|
+
"purchase",
|
|
15
14
|
],
|
|
16
15
|
"data": [
|
|
17
16
|
"views/purchase_order.xml",
|
|
18
17
|
"views/maintenance_equipment.xml",
|
|
18
|
+
"views/product_template_view.xml",
|
|
19
19
|
],
|
|
20
20
|
"demo": [],
|
|
21
21
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: Odoo Server
|
|
7
|
+
"Project-Id-Version: Odoo Server 18.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: \n"
|
|
9
9
|
"Last-Translator: \n"
|
|
10
10
|
"Language-Team: \n"
|
|
@@ -39,11 +39,22 @@ msgstr ""
|
|
|
39
39
|
msgid "Maintenance Equipment"
|
|
40
40
|
msgstr ""
|
|
41
41
|
|
|
42
|
+
#. module: maintenance_purchase
|
|
43
|
+
#: model:ir.model,name:maintenance_purchase.model_product_template
|
|
44
|
+
msgid "Product"
|
|
45
|
+
msgstr ""
|
|
46
|
+
|
|
42
47
|
#. module: maintenance_purchase
|
|
43
48
|
#: model:ir.model.fields,field_description:maintenance_purchase.field_maintenance_equipment__purchase_id
|
|
44
49
|
msgid "Purchase"
|
|
45
50
|
msgstr ""
|
|
46
51
|
|
|
52
|
+
#. module: maintenance_purchase
|
|
53
|
+
#: model:ir.model.fields,field_description:maintenance_purchase.field_product_product__purchase_equipment_category_id
|
|
54
|
+
#: model:ir.model.fields,field_description:maintenance_purchase.field_product_template__purchase_equipment_category_id
|
|
55
|
+
msgid "Purchase Equipment Category"
|
|
56
|
+
msgstr ""
|
|
57
|
+
|
|
47
58
|
#. module: maintenance_purchase
|
|
48
59
|
#: model:ir.model.fields,field_description:maintenance_purchase.field_maintenance_equipment__purchase_line_id
|
|
49
60
|
msgid "Purchase Line"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Copyright 2026 Tecnativa - Christian Ramos
|
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
3
|
+
from openupgradelib import openupgrade
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@openupgrade.migrate()
|
|
7
|
+
def migrate(env, version):
|
|
8
|
+
# Bring the category data from maintenance_equipment_category to the product
|
|
9
|
+
if openupgrade.column_exists(
|
|
10
|
+
env.cr, "maintenance_equipment_category", "product_category_id"
|
|
11
|
+
):
|
|
12
|
+
openupgrade.logged_query(
|
|
13
|
+
env.cr,
|
|
14
|
+
"""
|
|
15
|
+
UPDATE product_template pt
|
|
16
|
+
SET equipment_category_id = mec.equipment_category_id
|
|
17
|
+
FROM maintenance_equipment_category mec
|
|
18
|
+
WHERE pt.categ_id = mec.product_category_id
|
|
19
|
+
AND pt.equipment_category_id IS NULL""",
|
|
20
|
+
)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Copyright 2026 Tecnativa - Christian Ramos
|
|
2
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
3
|
+
from odoo import fields, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class ProductTemplate(models.Model):
|
|
7
|
+
_inherit = "product.template"
|
|
8
|
+
|
|
9
|
+
purchase_equipment_category_id = fields.Many2one(
|
|
10
|
+
comodel_name="maintenance.equipment.category",
|
|
11
|
+
string="Purchase Equipment Category",
|
|
12
|
+
)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
# Copyright 2022 CreuBlanca
|
|
2
2
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
3
3
|
|
|
4
|
-
from odoo import api, fields, models
|
|
4
|
+
from odoo import Command, api, fields, models
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class PurchaseOrder(models.Model):
|
|
8
|
-
|
|
9
8
|
_inherit = "purchase.order"
|
|
10
9
|
|
|
11
10
|
equipment_count = fields.Integer(compute="_compute_equipment_count")
|
|
@@ -25,8 +24,9 @@ class PurchaseOrder(models.Model):
|
|
|
25
24
|
items = self.env["maintenance.equipment"].search(
|
|
26
25
|
[("purchase_id", "=", self.id)]
|
|
27
26
|
)
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
action_dict = self.env["ir.actions.act_window"]._for_xml_id(
|
|
28
|
+
"maintenance.hr_equipment_action"
|
|
29
|
+
)
|
|
30
30
|
if len(items) == 1:
|
|
31
31
|
res = self.env.ref("maintenance.hr_equipment_view_form", False)
|
|
32
32
|
action_dict["views"] = [(res and res.id or False, "form")]
|
|
@@ -37,29 +37,25 @@ class PurchaseOrder(models.Model):
|
|
|
37
37
|
action_dict = {"type": "ir.actions.act_window_close"}
|
|
38
38
|
return action_dict
|
|
39
39
|
|
|
40
|
+
def _get_lines_to_create_equipments(self):
|
|
41
|
+
return self.order_line.filtered(
|
|
42
|
+
lambda x: (
|
|
43
|
+
x.product_qty > len(x.equipment_ids)
|
|
44
|
+
and x.product_id
|
|
45
|
+
and x.equipment_category_id
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
|
|
40
49
|
def button_approve(self, force=False):
|
|
41
50
|
result = super().button_approve(force=force)
|
|
42
|
-
|
|
43
|
-
for order in self.filtered(lambda po: po.state in ("purchase", "done")):
|
|
44
|
-
for line in order.order_line.filtered(
|
|
45
|
-
lambda x: (
|
|
46
|
-
not x.equipment_ids
|
|
47
|
-
and x.product_id
|
|
48
|
-
and x.product_id.product_tmpl_id.maintenance_ok
|
|
49
|
-
)
|
|
50
|
-
):
|
|
51
|
-
if not line.equipment_category_id:
|
|
52
|
-
line._set_equipment_category()
|
|
53
|
-
# Create equipments
|
|
54
|
-
limit = int(line.product_qty) + 1
|
|
55
|
-
vals = line._prepare_equipment_vals()
|
|
56
|
-
equipment_ids = []
|
|
57
|
-
for _i in range(1, limit):
|
|
58
|
-
equipment = equipment_model.create(vals)
|
|
59
|
-
equipment_ids.append((4, equipment.id))
|
|
60
|
-
line.equipment_ids = equipment_ids
|
|
51
|
+
self._create_equipments()
|
|
61
52
|
return result
|
|
62
53
|
|
|
54
|
+
def _create_equipments(self):
|
|
55
|
+
for order in self.filtered(lambda po: po.state in ("purchase", "done")):
|
|
56
|
+
for line in order._get_lines_to_create_equipments():
|
|
57
|
+
line.create_equipments()
|
|
58
|
+
|
|
63
59
|
|
|
64
60
|
class PurchaseOrderLine(models.Model):
|
|
65
61
|
_inherit = "purchase.order.line"
|
|
@@ -71,8 +67,9 @@ class PurchaseOrderLine(models.Model):
|
|
|
71
67
|
store=True,
|
|
72
68
|
readonly=False,
|
|
73
69
|
)
|
|
74
|
-
equipment_ids = fields.
|
|
70
|
+
equipment_ids = fields.One2many(
|
|
75
71
|
comodel_name="maintenance.equipment",
|
|
72
|
+
inverse_name="purchase_line_id",
|
|
76
73
|
string="Equipments",
|
|
77
74
|
copy=False,
|
|
78
75
|
)
|
|
@@ -81,12 +78,9 @@ class PurchaseOrderLine(models.Model):
|
|
|
81
78
|
@api.depends("product_id")
|
|
82
79
|
def _compute_equipment_category_id(self):
|
|
83
80
|
for item in self:
|
|
84
|
-
if
|
|
85
|
-
item.
|
|
86
|
-
|
|
87
|
-
):
|
|
88
|
-
item.equipment_category_id = fields.first(
|
|
89
|
-
item.product_id.product_tmpl_id.categ_id.equipment_category_ids
|
|
81
|
+
if item.product_id.product_tmpl_id.purchase_equipment_category_id:
|
|
82
|
+
item.equipment_category_id = (
|
|
83
|
+
item.product_id.product_tmpl_id.purchase_equipment_category_id
|
|
90
84
|
)
|
|
91
85
|
else:
|
|
92
86
|
item.equipment_category_id = item.equipment_category_id
|
|
@@ -101,37 +95,29 @@ class PurchaseOrderLine(models.Model):
|
|
|
101
95
|
for item in self:
|
|
102
96
|
item.equipment_count = mapping.get(item.id, 0)
|
|
103
97
|
|
|
104
|
-
def
|
|
105
|
-
|
|
106
|
-
return {"name": categ.name, "product_category_id": categ.id}
|
|
98
|
+
def _qty_to_create_equipments(self):
|
|
99
|
+
return int(self.product_qty - len(self.equipment_ids))
|
|
107
100
|
|
|
108
|
-
def
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
101
|
+
def create_equipments(self):
|
|
102
|
+
self.ensure_one()
|
|
103
|
+
equipment_model = self.env["maintenance.equipment"]
|
|
104
|
+
equipments = equipment_model.create(
|
|
105
|
+
[
|
|
106
|
+
self._prepare_equipment_vals()
|
|
107
|
+
for _ in range(self._qty_to_create_equipments())
|
|
108
|
+
]
|
|
109
|
+
)
|
|
110
|
+
self.equipment_ids = [Command.link(eq.id) for eq in equipments]
|
|
111
|
+
return equipments
|
|
119
112
|
|
|
120
113
|
def _prepare_equipment_vals(self):
|
|
121
114
|
return {
|
|
122
115
|
"purchase_line_id": self.id,
|
|
123
116
|
"name": self.product_id.name,
|
|
124
|
-
"product_id": self.product_id.id,
|
|
125
117
|
"category_id": self.equipment_category_id.id,
|
|
126
118
|
"assign_date": self.order_id.date_order,
|
|
127
119
|
"effective_date": self.order_id.date_planned,
|
|
128
120
|
"partner_id": self.order_id.partner_id.id,
|
|
129
121
|
"partner_ref": self.order_id.partner_ref,
|
|
122
|
+
"company_id": self.order_id.company_id.id,
|
|
130
123
|
}
|
|
131
|
-
|
|
132
|
-
def _prepare_account_move_line(self, move=False):
|
|
133
|
-
result = super()._prepare_account_move_line(move=move)
|
|
134
|
-
result["equipment_ids"] = [
|
|
135
|
-
(4, equipment.id) for equipment in self.equipment_ids
|
|
136
|
-
]
|
|
137
|
-
return result
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
- Enric Tobella
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
|
2
1
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
2
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
3
|
<head>
|
|
5
4
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
6
5
|
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
|
7
|
-
<title>
|
|
6
|
+
<title>README.rst</title>
|
|
8
7
|
<style type="text/css">
|
|
9
8
|
|
|
10
9
|
/*
|
|
11
10
|
:Author: David Goodger (goodger@python.org)
|
|
12
|
-
:Id: $Id: html4css1.css
|
|
11
|
+
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
|
13
12
|
:Copyright: This stylesheet has been placed in the public domain.
|
|
14
13
|
|
|
15
14
|
Default cascading style sheet for the HTML output of Docutils.
|
|
15
|
+
Despite the name, some widely supported CSS2 features are used.
|
|
16
16
|
|
|
17
17
|
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
|
18
18
|
customize this style sheet.
|
|
@@ -275,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
|
|
275
275
|
margin-left: 2em ;
|
|
276
276
|
margin-right: 2em }
|
|
277
277
|
|
|
278
|
-
pre.code .ln { color:
|
|
278
|
+
pre.code .ln { color: gray; } /* line numbers */
|
|
279
279
|
pre.code, code { background-color: #eeeeee }
|
|
280
280
|
pre.code .comment, code .comment { color: #5C6576 }
|
|
281
281
|
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
|
@@ -301,7 +301,7 @@ span.option {
|
|
|
301
301
|
span.pre {
|
|
302
302
|
white-space: pre }
|
|
303
303
|
|
|
304
|
-
span.problematic {
|
|
304
|
+
span.problematic, pre.problematic {
|
|
305
305
|
color: red }
|
|
306
306
|
|
|
307
307
|
span.section-subtitle {
|
|
@@ -360,16 +360,21 @@ ul.auto-toc {
|
|
|
360
360
|
</style>
|
|
361
361
|
</head>
|
|
362
362
|
<body>
|
|
363
|
-
<div class="document"
|
|
364
|
-
<h1 class="title">Maintenance Purchase</h1>
|
|
363
|
+
<div class="document">
|
|
365
364
|
|
|
365
|
+
|
|
366
|
+
<a class="reference external image-reference" href="https://odoo-community.org/get-involved?utm_source=readme">
|
|
367
|
+
<img alt="Odoo Community Association" src="https://odoo-community.org/readme-banner-image" />
|
|
368
|
+
</a>
|
|
369
|
+
<div class="section" id="maintenance-purchase">
|
|
370
|
+
<h1>Maintenance Purchase</h1>
|
|
366
371
|
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
367
372
|
!! This file is generated by oca-gen-addon-readme !!
|
|
368
373
|
!! changes will be overwritten. !!
|
|
369
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
370
|
-
!! source digest: sha256:
|
|
375
|
+
!! source digest: sha256:4081bc034b7ce0eb90fe184d22c1b65887263032ae7db862470be512e902124c
|
|
371
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
372
|
-
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/
|
|
377
|
+
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/maintenance/tree/18.0/maintenance_purchase"><img alt="OCA/maintenance" src="https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/maintenance-18-0/maintenance-18-0-maintenance_purchase"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
378
|
<p>Create Equipments when the purchase is validated.</p>
|
|
374
379
|
<p><strong>Table of contents</strong></p>
|
|
375
380
|
<div class="contents local topic" id="contents">
|
|
@@ -384,38 +389,41 @@ ul.auto-toc {
|
|
|
384
389
|
</ul>
|
|
385
390
|
</div>
|
|
386
391
|
<div class="section" id="bug-tracker">
|
|
387
|
-
<
|
|
392
|
+
<h2><a class="toc-backref" href="#toc-entry-1">Bug Tracker</a></h2>
|
|
388
393
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/maintenance/issues">GitHub Issues</a>.
|
|
389
394
|
In case of trouble, please check there if your issue has already been reported.
|
|
390
395
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
391
|
-
<a class="reference external" href="https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_purchase%0Aversion:%
|
|
396
|
+
<a class="reference external" href="https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_purchase%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
|
392
397
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
|
393
398
|
</div>
|
|
394
399
|
<div class="section" id="credits">
|
|
395
|
-
<
|
|
400
|
+
<h2><a class="toc-backref" href="#toc-entry-2">Credits</a></h2>
|
|
396
401
|
<div class="section" id="authors">
|
|
397
|
-
<
|
|
402
|
+
<h3><a class="toc-backref" href="#toc-entry-3">Authors</a></h3>
|
|
398
403
|
<ul class="simple">
|
|
399
404
|
<li>CreuBlanca</li>
|
|
400
405
|
</ul>
|
|
401
406
|
</div>
|
|
402
407
|
<div class="section" id="contributors">
|
|
403
|
-
<
|
|
408
|
+
<h3><a class="toc-backref" href="#toc-entry-4">Contributors</a></h3>
|
|
404
409
|
<ul class="simple">
|
|
405
410
|
<li>Enric Tobella</li>
|
|
406
411
|
</ul>
|
|
407
412
|
</div>
|
|
408
413
|
<div class="section" id="maintainers">
|
|
409
|
-
<
|
|
414
|
+
<h3><a class="toc-backref" href="#toc-entry-5">Maintainers</a></h3>
|
|
410
415
|
<p>This module is maintained by the OCA.</p>
|
|
411
|
-
<a class="reference external image-reference" href="https://odoo-community.org"
|
|
416
|
+
<a class="reference external image-reference" href="https://odoo-community.org">
|
|
417
|
+
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
|
418
|
+
</a>
|
|
412
419
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
413
420
|
mission is to support the collaborative development of Odoo features and
|
|
414
421
|
promote its widespread use.</p>
|
|
415
|
-
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/maintenance/tree/
|
|
422
|
+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/maintenance/tree/18.0/maintenance_purchase">OCA/maintenance</a> project on GitHub.</p>
|
|
416
423
|
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
|
417
424
|
</div>
|
|
418
425
|
</div>
|
|
419
426
|
</div>
|
|
427
|
+
</div>
|
|
420
428
|
</body>
|
|
421
429
|
</html>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Copyright 2024 ACSONE SA/NV
|
|
2
2
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
3
3
|
|
|
4
|
-
from odoo import Command
|
|
5
|
-
from odoo.tests.common import TransactionCase
|
|
6
4
|
|
|
5
|
+
from odoo.addons.base.tests.common import BaseCommon
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
|
|
8
|
+
class TestMaintenanceProject(BaseCommon):
|
|
9
9
|
@classmethod
|
|
10
10
|
def setUpClass(cls):
|
|
11
11
|
super().setUpClass()
|
|
@@ -35,22 +35,11 @@ class TestMaintenanceProject(TransactionCase):
|
|
|
35
35
|
cls.product_category01 = cls.ProductCategory.create(
|
|
36
36
|
{
|
|
37
37
|
"name": "My Product Category 1",
|
|
38
|
-
"equipment_category_ids": [
|
|
39
|
-
Command.set(
|
|
40
|
-
[
|
|
41
|
-
cls.maintenance_equipment_category1.id,
|
|
42
|
-
cls.maintenance_equipment_category2.id,
|
|
43
|
-
]
|
|
44
|
-
)
|
|
45
|
-
],
|
|
46
38
|
}
|
|
47
39
|
)
|
|
48
40
|
cls.product_category02 = cls.ProductCategory.create(
|
|
49
41
|
{
|
|
50
42
|
"name": "My Product Category 2",
|
|
51
|
-
"equipment_category_ids": [
|
|
52
|
-
Command.set([cls.maintenance_equipment_category2.id])
|
|
53
|
-
],
|
|
54
43
|
}
|
|
55
44
|
)
|
|
56
45
|
cls.product_order_maintenance = cls.ProductProduct.create(
|
|
@@ -64,8 +53,8 @@ class TestMaintenanceProject(TransactionCase):
|
|
|
64
53
|
"purchase_method": "purchase",
|
|
65
54
|
"default_code": "PROD_ORDER",
|
|
66
55
|
"taxes_id": False,
|
|
67
|
-
"maintenance_ok": True,
|
|
68
56
|
"categ_id": cls.product_category01.id,
|
|
57
|
+
"purchase_equipment_category_id": cls.maintenance_equipment_category1.id, # noqa: E501
|
|
69
58
|
}
|
|
70
59
|
)
|
|
71
60
|
cls.product_order_no_maintenance = cls.ProductProduct.create(
|
|
@@ -89,7 +78,7 @@ class TestMaintenanceProject(TransactionCase):
|
|
|
89
78
|
"partner_id": cls.partner.id,
|
|
90
79
|
}
|
|
91
80
|
)
|
|
92
|
-
PurchaseOrderLine = cls.PurchaseOrderLine
|
|
81
|
+
PurchaseOrderLine = cls.PurchaseOrderLine
|
|
93
82
|
cls.purchase_line_order01 = PurchaseOrderLine.create(
|
|
94
83
|
{
|
|
95
84
|
"name": cls.product_order_maintenance.name,
|
|
@@ -145,7 +134,7 @@ class TestMaintenanceProject(TransactionCase):
|
|
|
145
134
|
self.maintenance_equipment_category1,
|
|
146
135
|
)
|
|
147
136
|
self.assertFalse(self.purchase_line_order02.equipment_category_id)
|
|
148
|
-
self.product_order_no_maintenance.product_tmpl_id.
|
|
137
|
+
self.product_order_no_maintenance.product_tmpl_id.purchase_equipment_category_id = self.maintenance_equipment_category2 # noqa: E501
|
|
149
138
|
self.assertFalse(self.purchase_line_order02.equipment_category_id)
|
|
150
139
|
self.purchase_line_order02.product_id = self.product_order_maintenance
|
|
151
140
|
self.purchase_line_order02.product_id = self.product_order_no_maintenance
|
|
@@ -153,37 +142,6 @@ class TestMaintenanceProject(TransactionCase):
|
|
|
153
142
|
self.purchase_line_order02.equipment_category_id,
|
|
154
143
|
self.maintenance_equipment_category2,
|
|
155
144
|
)
|
|
156
|
-
self.purchase_line_order01.equipment_ids.unlink()
|
|
157
|
-
self.purchase_line_order01.equipment_category_id = False
|
|
158
|
-
self.purchase_order.button_approve()
|
|
159
|
-
self.assertEqual(
|
|
160
|
-
self.purchase_line_order01.equipment_category_id,
|
|
161
|
-
self.maintenance_equipment_category1,
|
|
162
|
-
)
|
|
163
|
-
self.purchase_line_order01.equipment_ids.unlink()
|
|
164
|
-
self.purchase_line_order01.equipment_category_id = False
|
|
165
|
-
product_category_withouth_equipement_category = self.ProductCategory.create(
|
|
166
|
-
{
|
|
167
|
-
"name": "My Product Category 2",
|
|
168
|
-
}
|
|
169
|
-
)
|
|
170
|
-
self.purchase_line_order01.product_id.product_tmpl_id.categ_id = (
|
|
171
|
-
product_category_withouth_equipement_category.id
|
|
172
|
-
)
|
|
173
|
-
self.purchase_order.button_approve()
|
|
174
|
-
self.assertTrue(self.purchase_line_order01.equipment_category_id)
|
|
175
|
-
self.assertNotEqual(
|
|
176
|
-
self.purchase_line_order01.equipment_category_id,
|
|
177
|
-
self.maintenance_equipment_category1,
|
|
178
|
-
)
|
|
179
|
-
|
|
180
|
-
def test_account_move_line(self):
|
|
181
|
-
self.purchase_order.button_approve()
|
|
182
|
-
self.purchase_order.action_create_invoice()
|
|
183
|
-
self.assertEqual(
|
|
184
|
-
self.purchase_order.order_line.equipment_ids,
|
|
185
|
-
self.purchase_order.invoice_ids.line_ids.equipment_ids,
|
|
186
|
-
)
|
|
187
145
|
|
|
188
146
|
def test_action_view_equipments(self):
|
|
189
147
|
action = self.purchase_order.action_view_equipments()
|
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
<field name="model">maintenance.equipment</field>
|
|
8
8
|
<field name="inherit_id" ref="maintenance.hr_equipment_view_form" />
|
|
9
9
|
<field name="arch" type="xml">
|
|
10
|
-
<xpath
|
|
11
|
-
|
|
10
|
+
<xpath
|
|
11
|
+
expr="//page[@name='product_information']//field[@name='serial_no']"
|
|
12
|
+
position="after"
|
|
13
|
+
>
|
|
14
|
+
<field name="purchase_id" groups="purchase.group_purchase_user" />
|
|
12
15
|
</xpath>
|
|
13
16
|
</field>
|
|
14
17
|
</record>
|
|
15
|
-
|
|
16
18
|
</odoo>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
|
+
<odoo>
|
|
3
|
+
<record id="product_template_form_view" model="ir.ui.view">
|
|
4
|
+
<field name="name">product.template.common.form</field>
|
|
5
|
+
<field name="model">product.template</field>
|
|
6
|
+
<field name="inherit_id" ref="product.product_template_form_view" />
|
|
7
|
+
<field name="arch" type="xml">
|
|
8
|
+
<xpath expr="//field[@name='categ_id']" position="after">
|
|
9
|
+
<field name="purchase_equipment_category_id" />
|
|
10
|
+
</xpath>
|
|
11
|
+
</field>
|
|
12
|
+
</record>
|
|
13
|
+
</odoo>
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
<!-- Copyright 2022 CreuBlanca
|
|
3
3
|
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
|
|
4
4
|
<odoo>
|
|
5
|
-
|
|
6
5
|
<record model="ir.ui.view" id="purchase_order_form_view">
|
|
7
6
|
<field name="name">purchase.order.form (in maintenance_purchase)</field>
|
|
8
7
|
<field name="model">purchase.order</field>
|
|
@@ -14,7 +13,7 @@
|
|
|
14
13
|
type="object"
|
|
15
14
|
class="oe_stat_button"
|
|
16
15
|
icon="fa-cubes"
|
|
17
|
-
|
|
16
|
+
invisible="not equipment_count"
|
|
18
17
|
>
|
|
19
18
|
<field
|
|
20
19
|
string="Equipment(s)"
|
|
@@ -24,14 +23,11 @@
|
|
|
24
23
|
</button>
|
|
25
24
|
</xpath>
|
|
26
25
|
<xpath
|
|
27
|
-
expr="//notebook//field[@name='order_line']/
|
|
26
|
+
expr="//notebook//field[@name='order_line']/list/field[@name='product_qty']"
|
|
28
27
|
position="before"
|
|
29
28
|
>
|
|
30
29
|
<field name="equipment_category_id" optional="hide" />
|
|
31
30
|
</xpath>
|
|
32
31
|
</field>
|
|
33
32
|
</record>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
33
|
</odoo>
|
|
@@ -1,45 +1,49 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-maintenance_purchase
|
|
3
|
-
Version:
|
|
3
|
+
Version: 18.0.1.0.0.2
|
|
4
|
+
Requires-Python: >=3.10
|
|
5
|
+
Requires-Dist: odoo==18.0.*
|
|
4
6
|
Summary: Create Equipments with purchases
|
|
5
7
|
Home-page: https://github.com/OCA/maintenance
|
|
8
|
+
License: AGPL-3
|
|
6
9
|
Author: CreuBlanca,Odoo Community Association (OCA)
|
|
7
10
|
Author-email: support@odoo-community.org
|
|
8
|
-
License: AGPL-3
|
|
9
11
|
Classifier: Programming Language :: Python
|
|
10
12
|
Classifier: Framework :: Odoo
|
|
11
|
-
Classifier: Framework :: Odoo ::
|
|
13
|
+
Classifier: Framework :: Odoo :: 18.0
|
|
12
14
|
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
Description-Content-Type: text/x-rst
|
|
16
|
+
|
|
17
|
+
.. image:: https://odoo-community.org/readme-banner-image
|
|
18
|
+
:target: https://odoo-community.org/get-involved?utm_source=readme
|
|
19
|
+
:alt: Odoo Community Association
|
|
16
20
|
|
|
17
21
|
====================
|
|
18
22
|
Maintenance Purchase
|
|
19
23
|
====================
|
|
20
24
|
|
|
21
|
-
..
|
|
25
|
+
..
|
|
22
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
23
27
|
!! This file is generated by oca-gen-addon-readme !!
|
|
24
28
|
!! changes will be overwritten. !!
|
|
25
29
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
26
|
-
!! source digest: sha256:
|
|
30
|
+
!! source digest: sha256:4081bc034b7ce0eb90fe184d22c1b65887263032ae7db862470be512e902124c
|
|
27
31
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
28
32
|
|
|
29
33
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
30
34
|
:target: https://odoo-community.org/page/development-status
|
|
31
35
|
:alt: Beta
|
|
32
|
-
.. |badge2| image:: https://img.shields.io/badge/
|
|
36
|
+
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
|
|
33
37
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
|
34
38
|
:alt: License: AGPL-3
|
|
35
39
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github
|
|
36
|
-
:target: https://github.com/OCA/maintenance/tree/
|
|
40
|
+
:target: https://github.com/OCA/maintenance/tree/18.0/maintenance_purchase
|
|
37
41
|
:alt: OCA/maintenance
|
|
38
42
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
39
|
-
:target: https://translation.odoo-community.org/projects/maintenance-
|
|
43
|
+
:target: https://translation.odoo-community.org/projects/maintenance-18-0/maintenance-18-0-maintenance_purchase
|
|
40
44
|
:alt: Translate me on Weblate
|
|
41
45
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
|
42
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=
|
|
46
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=18.0
|
|
43
47
|
:alt: Try me on Runboat
|
|
44
48
|
|
|
45
49
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
@@ -57,7 +61,7 @@ Bug Tracker
|
|
|
57
61
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/maintenance/issues>`_.
|
|
58
62
|
In case of trouble, please check there if your issue has already been reported.
|
|
59
63
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
60
|
-
`feedback <https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_purchase%0Aversion:%
|
|
64
|
+
`feedback <https://github.com/OCA/maintenance/issues/new?body=module:%20maintenance_purchase%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
|
61
65
|
|
|
62
66
|
Do not contact contributors directly about support or help with technical issues.
|
|
63
67
|
|
|
@@ -65,18 +69,17 @@ Credits
|
|
|
65
69
|
=======
|
|
66
70
|
|
|
67
71
|
Authors
|
|
68
|
-
|
|
72
|
+
-------
|
|
69
73
|
|
|
70
74
|
* CreuBlanca
|
|
71
75
|
|
|
72
76
|
Contributors
|
|
73
|
-
|
|
77
|
+
------------
|
|
74
78
|
|
|
75
|
-
|
|
76
|
-
* Laurent Stukkens
|
|
79
|
+
- Enric Tobella
|
|
77
80
|
|
|
78
81
|
Maintainers
|
|
79
|
-
|
|
82
|
+
-----------
|
|
80
83
|
|
|
81
84
|
This module is maintained by the OCA.
|
|
82
85
|
|
|
@@ -88,6 +91,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
|
88
91
|
mission is to support the collaborative development of Odoo features and
|
|
89
92
|
promote its widespread use.
|
|
90
93
|
|
|
91
|
-
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/
|
|
94
|
+
This module is part of the `OCA/maintenance <https://github.com/OCA/maintenance/tree/18.0/maintenance_purchase>`_ project on GitHub.
|
|
92
95
|
|
|
93
96
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
odoo/addons/maintenance_purchase/README.rst,sha256=v6lU-znjnTw0gsSTt1qZ6GhMsqSO9HkjXQ-3Mz5KrmI,2968
|
|
2
|
+
odoo/addons/maintenance_purchase/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
|
3
|
+
odoo/addons/maintenance_purchase/__manifest__.py,sha256=ZxlrtW9T03UkxG91HGt-WY1cITmvAX-AqnyXS38WHAQ,569
|
|
4
|
+
odoo/addons/maintenance_purchase/i18n/es.po,sha256=FaaoDY3xz3J33nf2uBlxSPyxKLHZeIbKojlULrMVso4,3346
|
|
5
|
+
odoo/addons/maintenance_purchase/i18n/fr.po,sha256=PoCvuCQqleocPrJgXiswo23bXOpMeatHTVgkNzC2mCw,2198
|
|
6
|
+
odoo/addons/maintenance_purchase/i18n/it.po,sha256=9YSpezbgzDY-FcCAFB1XvgvJllKIcTU4HgBmvQ-zaX0,3332
|
|
7
|
+
odoo/addons/maintenance_purchase/i18n/maintenance_purchase.pot,sha256=MbQSGaUVlOiWryIl8nB2z6o-pNoAi8PFc9hwAJz3fcg,2336
|
|
8
|
+
odoo/addons/maintenance_purchase/migrations/18.0.1.0.0/post-migration.py,sha256=2aGF4Fz0n0OwXXPSB-53KeQz5QkTy1M62ah82aT9Ne0,745
|
|
9
|
+
odoo/addons/maintenance_purchase/models/__init__.py,sha256=kTfI9WkVuXbIx2_jGoES9Eq5U800R_2rOnwXXo1ZYSo,96
|
|
10
|
+
odoo/addons/maintenance_purchase/models/maintenance_equipment.py,sha256=W-HtOK96kshAgIKnAQrx--C-L4v1HXytYESVdO1Wbks,498
|
|
11
|
+
odoo/addons/maintenance_purchase/models/product_template.py,sha256=as1SFLmMM8rfJ3KTq5ob4wm_jvsO2AfcAEOmHO1wdcY,381
|
|
12
|
+
odoo/addons/maintenance_purchase/models/purchase_order.py,sha256=Bf_80UgR9SBQNXrPuPSgQS_rBxwKegmTaiaUueY3Ydk,4400
|
|
13
|
+
odoo/addons/maintenance_purchase/readme/CONTRIBUTORS.md,sha256=subC7gWq_kRC_nJfLRfrI_IXlNoGgWaq9Es5qXuMa1w,16
|
|
14
|
+
odoo/addons/maintenance_purchase/readme/DESCRIPTION.md,sha256=9g_-7RtlHa57JH1IBwc9RIxOGBZ3v3Ahez-sSS4UW7E,50
|
|
15
|
+
odoo/addons/maintenance_purchase/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
16
|
+
odoo/addons/maintenance_purchase/static/description/index.html,sha256=qjiRAKEL-rdPE-RENEUGkZLnC5hMSPvZToeyl5cANNg,12247
|
|
17
|
+
odoo/addons/maintenance_purchase/tests/__init__.py,sha256=JsUwHLNgJAF-cd1UO-xTZ-iEVGBDxXXWqmMJ7UtDmzQ,34
|
|
18
|
+
odoo/addons/maintenance_purchase/tests/test_purchase_order.py,sha256=MgAt8Oqh7hN4f0iQSzf2x6rUujSYS7gX8HV6PPpXt4o,7107
|
|
19
|
+
odoo/addons/maintenance_purchase/views/maintenance_equipment.xml,sha256=FXa-UNFUFj8RcDlqJVcJemCmAmnNiC9TP0n6lRsijbI,728
|
|
20
|
+
odoo/addons/maintenance_purchase/views/product_template_view.xml,sha256=ievK1WbRVsKVARKVTcTqYsjWcRtn6Axz68VVTkTEEZQ,538
|
|
21
|
+
odoo/addons/maintenance_purchase/views/purchase_order.xml,sha256=bx37mk0BplKWh_IkrIPlGR8wFNwpPFtTW87SHUA_XjE,1312
|
|
22
|
+
odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info/METADATA,sha256=1qLwgnJT221-nlNO8rMvKLTLJKPcGwVObka6qyX1eXM,3524
|
|
23
|
+
odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
24
|
+
odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
25
|
+
odoo_addon_maintenance_purchase-18.0.1.0.0.2.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
odoo
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
* Enric Tobella
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
odoo/addons/maintenance_purchase/README.rst,sha256=pGlYaeYpieALmajf-Y6AKwlS8OCGwgiLNfT_dzAeHUI,2821
|
|
2
|
-
odoo/addons/maintenance_purchase/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
|
3
|
-
odoo/addons/maintenance_purchase/__manifest__.py,sha256=9w17WBhLcfa4SJoOxuyOfUH3YbUzEf4T2Uq_DOCCvPM,563
|
|
4
|
-
odoo/addons/maintenance_purchase/i18n/es.po,sha256=FaaoDY3xz3J33nf2uBlxSPyxKLHZeIbKojlULrMVso4,3346
|
|
5
|
-
odoo/addons/maintenance_purchase/i18n/fr.po,sha256=PoCvuCQqleocPrJgXiswo23bXOpMeatHTVgkNzC2mCw,2198
|
|
6
|
-
odoo/addons/maintenance_purchase/i18n/it.po,sha256=9YSpezbgzDY-FcCAFB1XvgvJllKIcTU4HgBmvQ-zaX0,3332
|
|
7
|
-
odoo/addons/maintenance_purchase/i18n/maintenance_purchase.pot,sha256=7Hv1vdMsKfjELy7vmxvJhZ1eMrTBlc3suX97FXt5bf0,1894
|
|
8
|
-
odoo/addons/maintenance_purchase/models/__init__.py,sha256=HaR2WahflhBcrchjiMYzQjtYcmtCDvX7frSd_WeksnI,65
|
|
9
|
-
odoo/addons/maintenance_purchase/models/maintenance_equipment.py,sha256=IRMQWw6pWJaxbL2QCQIDVjPDaGplercFeyirUlOR7z0,499
|
|
10
|
-
odoo/addons/maintenance_purchase/models/purchase_order.py,sha256=GWyHhZsO5Ji6ROdN63wZh3DiTblyRQYZTPkCrUsAmww,5205
|
|
11
|
-
odoo/addons/maintenance_purchase/readme/CONTRIBUTORS.rst,sha256=GAYxzAZEN5wTBewMNx4PD2y_QoI-dzpokacQ9NnaEso,16
|
|
12
|
-
odoo/addons/maintenance_purchase/readme/DESCRIPTION.rst,sha256=9g_-7RtlHa57JH1IBwc9RIxOGBZ3v3Ahez-sSS4UW7E,50
|
|
13
|
-
odoo/addons/maintenance_purchase/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
14
|
-
odoo/addons/maintenance_purchase/static/description/index.html,sha256=XFp2ZUdZjmQL6ZGofkKDORA9tOiWrj6cJrlTvIhmKX4,11986
|
|
15
|
-
odoo/addons/maintenance_purchase/tests/__init__.py,sha256=JsUwHLNgJAF-cd1UO-xTZ-iEVGBDxXXWqmMJ7UtDmzQ,34
|
|
16
|
-
odoo/addons/maintenance_purchase/tests/test_purchase_order.py,sha256=KI9TaSbKjM8QfdpeYKfDN-anp0a5agoxN12cg8LyAd0,8807
|
|
17
|
-
odoo/addons/maintenance_purchase/views/maintenance_equipment.xml,sha256=RlKpIuwLNS1VIBeCP5in4gFOKqhjsstOWVqi4_PG8l8,611
|
|
18
|
-
odoo/addons/maintenance_purchase/views/purchase_order.xml,sha256=WXazAvS--mP5Z70y9AHoAxfl5AwU530bEHAoa5cjPq4,1337
|
|
19
|
-
odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info/METADATA,sha256=t4MxGO-kpcb4B_tVXUg6zlEMU8S4CPfEzOU80cfZdA4,3412
|
|
20
|
-
odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
21
|
-
odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
|
22
|
-
odoo_addon_maintenance_purchase-16.0.1.0.0.3.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
odoo
|
|
File without changes
|