odoo-addon-project-task-stock 18.0.1.1.0.1__py3-none-any.whl → 18.0.1.1.1__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/project_task_stock/README.rst +1 -1
- odoo/addons/project_task_stock/__manifest__.py +1 -1
- odoo/addons/project_task_stock/i18n/it.po +8 -8
- odoo/addons/project_task_stock/models/stock_move.py +13 -5
- odoo/addons/project_task_stock/static/description/index.html +1 -1
- odoo/addons/project_task_stock/tests/test_project_task_stock.py +39 -0
- {odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info → odoo_addon_project_task_stock-18.0.1.1.1.dist-info}/METADATA +2 -2
- {odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info → odoo_addon_project_task_stock-18.0.1.1.1.dist-info}/RECORD +10 -10
- {odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info → odoo_addon_project_task_stock-18.0.1.1.1.dist-info}/WHEEL +0 -0
- {odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info → odoo_addon_project_task_stock-18.0.1.1.1.dist-info}/top_level.txt +0 -0
|
@@ -11,7 +11,7 @@ Project Task Stock
|
|
|
11
11
|
!! This file is generated by oca-gen-addon-readme !!
|
|
12
12
|
!! changes will be overwritten. !!
|
|
13
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
14
|
-
!! source digest: sha256:
|
|
14
|
+
!! source digest: sha256:65971a0d7ce3f10a5014265783a2b32623bca6083f66874f109f4dfc8cf0f009
|
|
15
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
16
16
|
|
|
17
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
3
3
|
{
|
|
4
4
|
"name": "Project Task Stock",
|
|
5
|
-
"version": "18.0.1.1.
|
|
5
|
+
"version": "18.0.1.1.1",
|
|
6
6
|
"category": "Project Management",
|
|
7
7
|
"website": "https://github.com/OCA/project",
|
|
8
8
|
"author": "Tecnativa, Odoo Community Association (OCA)",
|
|
@@ -6,7 +6,7 @@ msgid ""
|
|
|
6
6
|
msgstr ""
|
|
7
7
|
"Project-Id-Version: Odoo Server 14.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: \n"
|
|
9
|
-
"PO-Revision-Date:
|
|
9
|
+
"PO-Revision-Date: 2025-11-20 16:42+0000\n"
|
|
10
10
|
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
|
11
11
|
"Language-Team: none\n"
|
|
12
12
|
"Language: it\n"
|
|
@@ -14,7 +14,7 @@ msgstr ""
|
|
|
14
14
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
15
15
|
"Content-Transfer-Encoding: \n"
|
|
16
16
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
17
|
-
"X-Generator: Weblate 4
|
|
17
|
+
"X-Generator: Weblate 5.10.4\n"
|
|
18
18
|
|
|
19
19
|
#. module: project_task_stock
|
|
20
20
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_task__allow_moves_action_assign
|
|
@@ -54,7 +54,7 @@ msgstr "Precisione analitica"
|
|
|
54
54
|
#. module: project_task_stock
|
|
55
55
|
#: model_terms:ir.ui.view,arch_db:project_task_stock.view_stock_move_raw_list
|
|
56
56
|
msgid "Are you sure you want to proceed?"
|
|
57
|
-
msgstr ""
|
|
57
|
+
msgstr "Si è sicuri di voler procedere?"
|
|
58
58
|
|
|
59
59
|
#. module: project_task_stock
|
|
60
60
|
#: model:ir.model.fields.selection,name:project_task_stock.selection__project_task__stock_state__assigned
|
|
@@ -111,7 +111,7 @@ msgstr "Ubicazione di destinazione"
|
|
|
111
111
|
#. module: project_task_stock
|
|
112
112
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_task__distribution_analytic_account_ids
|
|
113
113
|
msgid "Distribution Analytic Account"
|
|
114
|
-
msgstr ""
|
|
114
|
+
msgstr "Conto distribuzione analitica"
|
|
115
115
|
|
|
116
116
|
#. module: project_task_stock
|
|
117
117
|
#: model:ir.model.fields.selection,name:project_task_stock.selection__project_task__stock_state__done
|
|
@@ -239,7 +239,7 @@ msgstr "Scarti"
|
|
|
239
239
|
#. module: project_task_stock
|
|
240
240
|
#: model:ir.model.fields,field_description:project_task_stock.field_stock_move__show_cancel_button_in_task
|
|
241
241
|
msgid "Show Cancel Button In Task"
|
|
242
|
-
msgstr ""
|
|
242
|
+
msgstr "Visualizza pulsante annulla nel task"
|
|
243
243
|
|
|
244
244
|
#. module: project_task_stock
|
|
245
245
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_project__location_id
|
|
@@ -256,17 +256,17 @@ msgstr "Giacenza"
|
|
|
256
256
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_project__stock_analytic_date
|
|
257
257
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_task__stock_analytic_date
|
|
258
258
|
msgid "Stock Analytic Date"
|
|
259
|
-
msgstr ""
|
|
259
|
+
msgstr "Data analitica magazzino"
|
|
260
260
|
|
|
261
261
|
#. module: project_task_stock
|
|
262
262
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_task__stock_analytic_distribution
|
|
263
263
|
msgid "Stock Analytic Distribution"
|
|
264
|
-
msgstr ""
|
|
264
|
+
msgstr "Distribuzione analitica magazzino"
|
|
265
265
|
|
|
266
266
|
#. module: project_task_stock
|
|
267
267
|
#: model:ir.model.fields,field_description:project_task_stock.field_project_task__stock_analytic_line_ids
|
|
268
268
|
msgid "Stock Analytic Lines"
|
|
269
|
-
msgstr ""
|
|
269
|
+
msgstr "Righe analitiche magazzino"
|
|
270
270
|
|
|
271
271
|
#. module: project_task_stock
|
|
272
272
|
#: model_terms:ir.ui.view,arch_db:project_task_stock.view_task_form2
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# Copyright 2022-2025 Tecnativa - Víctor Martínez
|
|
2
2
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
|
3
|
+
|
|
3
4
|
from odoo import api, fields, models
|
|
4
5
|
from odoo.tools import float_is_zero
|
|
5
6
|
|
|
@@ -90,32 +91,39 @@ class StockMove(models.Model):
|
|
|
90
91
|
product = self.product_id
|
|
91
92
|
company_id = self.env.company
|
|
92
93
|
task = self.task_id or self.raw_material_task_id
|
|
93
|
-
|
|
94
|
+
project_id = task.project_id
|
|
95
|
+
analytic_account = task.stock_analytic_account_id or project_id.account_id
|
|
94
96
|
if not analytic_account:
|
|
95
97
|
return False
|
|
96
98
|
# Apply sudo() in case there is any rule that does not allow access to
|
|
97
99
|
# the analytic account, for example with analytic_hr_department_restriction
|
|
98
100
|
analytic_account = analytic_account.sudo()
|
|
101
|
+
is_return = bool(
|
|
102
|
+
self.origin_returned_move_id
|
|
103
|
+
and self.location_id == project_id.location_dest_id
|
|
104
|
+
and self.location_dest_id == project_id.location_id
|
|
105
|
+
)
|
|
106
|
+
quantity_done = self.quantity * (-1 if is_return else 1)
|
|
99
107
|
res = {
|
|
100
108
|
"date": (
|
|
101
109
|
task.stock_analytic_date
|
|
102
|
-
or
|
|
110
|
+
or project_id.stock_analytic_date
|
|
103
111
|
or fields.date.today()
|
|
104
112
|
),
|
|
105
113
|
"name": task.name + ": " + product.name,
|
|
106
|
-
"unit_amount":
|
|
114
|
+
"unit_amount": quantity_done,
|
|
107
115
|
"account_id": analytic_account.id,
|
|
108
116
|
"user_id": self.env.user.id,
|
|
109
117
|
"product_uom_id": self.product_uom.id,
|
|
110
118
|
"company_id": analytic_account.company_id.id or self.env.company.id,
|
|
111
|
-
"partner_id": task.partner_id.id or
|
|
119
|
+
"partner_id": task.partner_id.id or project_id.partner_id.id or False,
|
|
112
120
|
"stock_move_id": self.id,
|
|
113
121
|
"stock_task_id": task.id,
|
|
114
122
|
}
|
|
115
123
|
amount_unit = product.with_context(uom=self.product_uom.id)._price_compute(
|
|
116
124
|
"standard_price"
|
|
117
125
|
)[product.id]
|
|
118
|
-
amount = amount_unit *
|
|
126
|
+
amount = amount_unit * quantity_done or 0.0
|
|
119
127
|
result = round(amount, company_id.currency_id.decimal_places) * -1
|
|
120
128
|
vals = {"amount": result}
|
|
121
129
|
analytic_line_fields = self.env["account.analytic.line"]._fields
|
|
@@ -372,7 +372,7 @@ ul.auto-toc {
|
|
|
372
372
|
!! This file is generated by oca-gen-addon-readme !!
|
|
373
373
|
!! changes will be overwritten. !!
|
|
374
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
375
|
-
!! source digest: sha256:
|
|
375
|
+
!! source digest: sha256:65971a0d7ce3f10a5014265783a2b32623bca6083f66874f109f4dfc8cf0f009
|
|
376
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
377
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/project/tree/18.0/project_task_stock"><img alt="OCA/project" src="https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_task_stock"><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/project&target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
378
378
|
<p>This module allows to consume products directly from a project task.</p>
|
|
@@ -147,6 +147,45 @@ class TestProjectTaskStock(TestProjectStockBase):
|
|
|
147
147
|
fields.first(self.task.stock_analytic_line_ids).date, fields.date.today()
|
|
148
148
|
)
|
|
149
149
|
|
|
150
|
+
def test_project_task_analytic_lines_with_returned_picking(self):
|
|
151
|
+
# Create initial moves
|
|
152
|
+
self.task = self.env["project.task"].browse(self.task.id)
|
|
153
|
+
self.task.action_assign()
|
|
154
|
+
picking = self.task.move_ids.picking_id
|
|
155
|
+
for move in picking.move_ids:
|
|
156
|
+
move.quantity = move.product_uom_qty
|
|
157
|
+
picking.button_validate()
|
|
158
|
+
self.assertEqual(picking.state, "done")
|
|
159
|
+
# Return the initial moves
|
|
160
|
+
stock_return_picking_form = Form(
|
|
161
|
+
self.env["stock.return.picking"].with_context(
|
|
162
|
+
active_ids=picking.ids,
|
|
163
|
+
active_id=picking.id,
|
|
164
|
+
active_model="stock.picking",
|
|
165
|
+
)
|
|
166
|
+
)
|
|
167
|
+
stock_return_picking = stock_return_picking_form.save()
|
|
168
|
+
for return_line in stock_return_picking.product_return_moves:
|
|
169
|
+
return_line.quantity = return_line.move_id.product_uom_qty
|
|
170
|
+
stock_return_picking_action = stock_return_picking.action_create_returns()
|
|
171
|
+
return_pick = self.env["stock.picking"].browse(
|
|
172
|
+
stock_return_picking_action["res_id"]
|
|
173
|
+
)
|
|
174
|
+
return_pick.action_assign()
|
|
175
|
+
for return_line in return_pick.move_ids:
|
|
176
|
+
return_line.quantity = return_line.origin_returned_move_id.quantity
|
|
177
|
+
return_pick.button_validate()
|
|
178
|
+
self.assertEqual(return_pick.state, "done")
|
|
179
|
+
# Check that the resulting analytic lines sum is 0
|
|
180
|
+
stock_analytic_lines = self.task.sudo().stock_analytic_line_ids
|
|
181
|
+
self.assertEqual(len(stock_analytic_lines), 4)
|
|
182
|
+
self.assertEqual(sum(stock_analytic_lines.mapped("unit_amount")), 0)
|
|
183
|
+
self.assertEqual(sum(stock_analytic_lines.mapped("amount")), 0)
|
|
184
|
+
self.assertIn(
|
|
185
|
+
self.analytic_account,
|
|
186
|
+
stock_analytic_lines.mapped("account_id"),
|
|
187
|
+
)
|
|
188
|
+
|
|
150
189
|
@users("manager-user")
|
|
151
190
|
def test_project_task_analytic_lines_with_tag_2_manager_user(self):
|
|
152
191
|
self.task.stock_analytic_distribution = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-project_task_stock
|
|
3
|
-
Version: 18.0.1.1.
|
|
3
|
+
Version: 18.0.1.1.1
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: odoo==18.0.*
|
|
6
6
|
Summary: Project Task Stock
|
|
@@ -27,7 +27,7 @@ Project Task Stock
|
|
|
27
27
|
!! This file is generated by oca-gen-addon-readme !!
|
|
28
28
|
!! changes will be overwritten. !!
|
|
29
29
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
30
|
-
!! source digest: sha256:
|
|
30
|
+
!! source digest: sha256:65971a0d7ce3f10a5014265783a2b32623bca6083f66874f109f4dfc8cf0f009
|
|
31
31
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
32
32
|
|
|
33
33
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
odoo/addons/project_task_stock/README.rst,sha256=
|
|
1
|
+
odoo/addons/project_task_stock/README.rst,sha256=qgmBXgjN-TboYRKaphNJ9nLwcgUdnauUfWR6hK-8C3k,5159
|
|
2
2
|
odoo/addons/project_task_stock/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
|
3
|
-
odoo/addons/project_task_stock/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/project_task_stock/__manifest__.py,sha256=SQ2l4w2u1cKpm052oSwahgElows2J9N17wzviwGxHI0,775
|
|
4
4
|
odoo/addons/project_task_stock/demo/project_data.xml,sha256=GbYSbj5CiOQHyAeQtdBWMbHajJyVDytBf50cBJv4tpI,1123
|
|
5
5
|
odoo/addons/project_task_stock/demo/stock_picking_type_data.xml,sha256=c5i4QCAiyQe56NABAUPSJMEMQ9lgr7D1QzzW3M5N-hY,525
|
|
6
6
|
odoo/addons/project_task_stock/i18n/es.po,sha256=s3RyWdAFRh7OmgK9cuDcjVONSzzoxDvc4J9GtbuX87Q,13360
|
|
7
7
|
odoo/addons/project_task_stock/i18n/fr.po,sha256=4Uy3yE_6Lx9sgJUWGIARu2uibwiM-_1x1mqw1WoDdk8,11682
|
|
8
8
|
odoo/addons/project_task_stock/i18n/hr.po,sha256=UXyRItM-pxY79LHdsmcgUvFb2OWp7J51pvxatpVKwV0,13242
|
|
9
|
-
odoo/addons/project_task_stock/i18n/it.po,sha256=
|
|
9
|
+
odoo/addons/project_task_stock/i18n/it.po,sha256=b3LxvtFn092szeJoNtzzVyiqaLuPkwlr_7O41EzJews,13636
|
|
10
10
|
odoo/addons/project_task_stock/i18n/project_task_stock.pot,sha256=7FDZwz977F9ZG8AuYuys87Nt1nv8C9qjaAlC6Riu9qg,11613
|
|
11
11
|
odoo/addons/project_task_stock/i18n/pt_BR.po,sha256=LwVYkwkbGqI7KWrDlUFJsBXye07Kh5ofQQ-v2ubCTw4,13560
|
|
12
12
|
odoo/addons/project_task_stock/models/__init__.py,sha256=I5RT15Ty8nTgrnFlAVrkxRbKuQIpIZAsACSqPzffQ4U,209
|
|
13
13
|
odoo/addons/project_task_stock/models/account_analytic_line.py,sha256=RSND1vjwTJlunJoFa1mPaJqfns8Q0DtsHE-cxAToB7A,974
|
|
14
14
|
odoo/addons/project_task_stock/models/project_project.py,sha256=Qf_kkL7KUQxNo4XNJ28SruRlbK0Zy0sejYvWz6vLISk,1545
|
|
15
15
|
odoo/addons/project_task_stock/models/project_task.py,sha256=GTSPAJVP0zokAS-13b1vUtg7_aDl_5_e6H8U_O49DTg,10182
|
|
16
|
-
odoo/addons/project_task_stock/models/stock_move.py,sha256=
|
|
16
|
+
odoo/addons/project_task_stock/models/stock_move.py,sha256=5a2PIa5YZtGsK_UutJV27pii0M2bEc-MfCvCuHS8jTM,8858
|
|
17
17
|
odoo/addons/project_task_stock/models/stock_scrap.py,sha256=zIHRHbc4cqtLeuIYtGGRvQDAKPFRdyGcJ-_NrrP3jlQ,875
|
|
18
18
|
odoo/addons/project_task_stock/readme/CONFIGURE.md,sha256=4XwAh_S4bnXRLEWh5qSs9odeJFvtDvPEArQfq3fQUhg,903
|
|
19
19
|
odoo/addons/project_task_stock/readme/CONTRIBUTORS.md,sha256=7B3TJAW9bVCbc9-u4HKUamqJSM0J1p_Z_47T3M3uXxE,83
|
|
@@ -21,16 +21,16 @@ odoo/addons/project_task_stock/readme/DESCRIPTION.md,sha256=QokztTE5MwpfnbAogx3V
|
|
|
21
21
|
odoo/addons/project_task_stock/readme/ROADMAP.md,sha256=O5Fz1skeLk6S4CTmbHzscRXYOGfCBY_gtCAEf_E47Gw,109
|
|
22
22
|
odoo/addons/project_task_stock/readme/USAGE.md,sha256=eOWL0QCwPpokebB-EJDovHkJSDT9ztTUSoEp1W0YY3I,845
|
|
23
23
|
odoo/addons/project_task_stock/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
24
|
-
odoo/addons/project_task_stock/static/description/index.html,sha256=
|
|
24
|
+
odoo/addons/project_task_stock/static/description/index.html,sha256=Z8o7M7bhiL-0JcVJJrJkquY8hKLr3QxT1sYypjP7CBc,15358
|
|
25
25
|
odoo/addons/project_task_stock/tests/__init__.py,sha256=t2gqBJiFaqp2rOwkMCOmAnRKCBGKOddjpE4WVCMTJ3o,150
|
|
26
26
|
odoo/addons/project_task_stock/tests/common.py,sha256=D_YbTvpSut235e35T8oDK6wb4ODDfAZOzkd1q2gPRHM,3705
|
|
27
|
-
odoo/addons/project_task_stock/tests/test_project_task_stock.py,sha256=
|
|
27
|
+
odoo/addons/project_task_stock/tests/test_project_task_stock.py,sha256=6ZIdMbUtN1kDLVUbNTfkAySznP9qLenUS3mQXf62xGc,18716
|
|
28
28
|
odoo/addons/project_task_stock/views/project_project_view.xml,sha256=guERwgs5MebLRq0EMA8Nu8oWjMdVPOwZlJE8P-ER1yw,994
|
|
29
29
|
odoo/addons/project_task_stock/views/project_task_type_view.xml,sha256=PuhMxiLk_brwDCFw9fQMUKCx6CmxjUcJXx_EnsY2G34,555
|
|
30
30
|
odoo/addons/project_task_stock/views/project_task_view.xml,sha256=UI3NQ3QeDAzkSlZtL_k_mr2aFrGNxFihb8PmdaAShuk,6451
|
|
31
31
|
odoo/addons/project_task_stock/views/stock_move_view.xml,sha256=uguTAZaMh7bOwuo9f9G0hCVcr9-xOhKimOVT0zUw8_U,3236
|
|
32
32
|
odoo/addons/project_task_stock/views/stock_scrap_views.xml,sha256=sOCk3Nv159QHO3gqiuVubbUH1mWHgKTwOURXnkWsxno,507
|
|
33
|
-
odoo_addon_project_task_stock-18.0.1.1.
|
|
34
|
-
odoo_addon_project_task_stock-18.0.1.1.
|
|
35
|
-
odoo_addon_project_task_stock-18.0.1.1.
|
|
36
|
-
odoo_addon_project_task_stock-18.0.1.1.
|
|
33
|
+
odoo_addon_project_task_stock-18.0.1.1.1.dist-info/METADATA,sha256=pHASiN3VCAKtnfiUaDf3F3Z5UITpUJMS7ek1O-yl5jA,5693
|
|
34
|
+
odoo_addon_project_task_stock-18.0.1.1.1.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
35
|
+
odoo_addon_project_task_stock-18.0.1.1.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
36
|
+
odoo_addon_project_task_stock-18.0.1.1.1.dist-info/RECORD,,
|
|
File without changes
|