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.
@@ -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:242c581176cfc77f755cc535f6cd33d657b87ea678afb0ccaa09569d68d94aeb
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.0",
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: 2024-06-14 17:43+0000\n"
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\n"
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
- analytic_account = task.stock_analytic_account_id or task.project_id.account_id
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 task.project_id.stock_analytic_date
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": self.quantity,
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 task.project_id.partner_id.id or False,
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 * self.quantity or 0.0
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:242c581176cfc77f755cc535f6cd33d657b87ea678afb0ccaa09569d68d94aeb
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&amp;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.0.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:242c581176cfc77f755cc535f6cd33d657b87ea678afb0ccaa09569d68d94aeb
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=pLBIxdWYtNWiObNyzUTOYW5XhisWB0tgbAshFVtaMvM,5159
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=uU6kBxOzKrAPZb_wghhKWDy1hEr06E4NVuIfasuVwYg,775
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=O8N2a67tH360x1E_bALubpaCfnlALskhNFjN5EFNm_8,13454
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=eV6JpeafFT_o1TLWBf_YUP_P4bVflbrl0rd54cKPmGg,8565
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=Wjbq8YFE4goQBMBPTXdeCVqq7jbyPmAVN4UQDYjCtYc,15358
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=ycaHyuI8E3iA_E-XX_JXbDhsfc79fdVEO1lYR9n3Oxg,16896
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.0.1.dist-info/METADATA,sha256=wRiIjfGqkRa2ZMLX7wTh2VEeeU20u_LusS_N1FKRuWk,5695
34
- odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
35
- odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
36
- odoo_addon_project_task_stock-18.0.1.1.0.1.dist-info/RECORD,,
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,,