odoo-addon-stock-release-channel 16.0.2.18.0.2__py3-none-any.whl → 16.0.2.18.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/stock_release_channel/README.rst +1 -1
- odoo/addons/stock_release_channel/__manifest__.py +1 -1
- odoo/addons/stock_release_channel/models/stock_release_channel.py +20 -10
- odoo/addons/stock_release_channel/static/description/index.html +1 -1
- odoo/addons/stock_release_channel/tests/test_release_channel.py +10 -0
- {odoo_addon_stock_release_channel-16.0.2.18.0.2.dist-info → odoo_addon_stock_release_channel-16.0.2.18.2.dist-info}/METADATA +2 -2
- {odoo_addon_stock_release_channel-16.0.2.18.0.2.dist-info → odoo_addon_stock_release_channel-16.0.2.18.2.dist-info}/RECORD +9 -9
- {odoo_addon_stock_release_channel-16.0.2.18.0.2.dist-info → odoo_addon_stock_release_channel-16.0.2.18.2.dist-info}/WHEEL +1 -1
- {odoo_addon_stock_release_channel-16.0.2.18.0.2.dist-info → odoo_addon_stock_release_channel-16.0.2.18.2.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ Stock Release Channels
|
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
|
8
8
|
!! changes will be overwritten. !!
|
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
10
|
-
!! source digest: sha256:
|
|
10
|
+
!! source digest: sha256:c3300cb077a8ef44fa9666327c346ae054fb1a6d4df8c5ab5d166f76f5af7436
|
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
12
|
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
{
|
|
6
6
|
"name": "Stock Release Channels",
|
|
7
7
|
"summary": "Manage workload in WMS with release channels",
|
|
8
|
-
"version": "16.0.2.18.
|
|
8
|
+
"version": "16.0.2.18.2",
|
|
9
9
|
"development_status": "Beta",
|
|
10
10
|
"license": "AGPL-3",
|
|
11
11
|
"author": "Camptocamp, BCIM, ACSONE SA/NV, Odoo Community Association (OCA)",
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
import logging
|
|
7
7
|
from collections import defaultdict
|
|
8
8
|
from copy import deepcopy
|
|
9
|
+
from operator import itemgetter
|
|
9
10
|
|
|
10
11
|
from pytz import timezone
|
|
11
12
|
|
|
12
13
|
from odoo import _, api, exceptions, fields, models
|
|
13
14
|
from odoo.osv.expression import NEGATIVE_TERM_OPERATORS
|
|
15
|
+
from odoo.tools import groupby
|
|
14
16
|
from odoo.tools.safe_eval import (
|
|
15
17
|
datetime as safe_datetime,
|
|
16
18
|
dateutil as safe_dateutil,
|
|
@@ -104,7 +106,8 @@ class StockReleaseChannel(models.Model):
|
|
|
104
106
|
)
|
|
105
107
|
open_picking_ids = fields.One2many(
|
|
106
108
|
string="Open Transfers",
|
|
107
|
-
|
|
109
|
+
comodel_name="stock.picking",
|
|
110
|
+
inverse_name="release_channel_id",
|
|
108
111
|
readonly=True,
|
|
109
112
|
domain=[("state", "not in", ("done", "cancel"))],
|
|
110
113
|
)
|
|
@@ -459,15 +462,18 @@ class StockReleaseChannel(models.Model):
|
|
|
459
462
|
WITH RECURSIVE
|
|
460
463
|
pickings AS (
|
|
461
464
|
SELECT move.picking_id,
|
|
465
|
+
stock_picking.release_channel_id,
|
|
462
466
|
true as outgoing,
|
|
463
467
|
''::varchar as state, -- no need it, we exclude outgoing
|
|
464
468
|
move.id as move_orig_id
|
|
465
469
|
FROM stock_move move
|
|
470
|
+
INNER JOIN stock_picking ON move.picking_id = stock_picking.id
|
|
466
471
|
WHERE move.picking_id in %s
|
|
467
472
|
|
|
468
473
|
UNION
|
|
469
474
|
|
|
470
475
|
SELECT move.picking_id,
|
|
476
|
+
pickings.release_channel_id,
|
|
471
477
|
false as outgoing,
|
|
472
478
|
picking.state,
|
|
473
479
|
rel.move_orig_id
|
|
@@ -479,7 +485,7 @@ class StockReleaseChannel(models.Model):
|
|
|
479
485
|
INNER JOIN stock_picking picking
|
|
480
486
|
ON picking.id = move.picking_id
|
|
481
487
|
)
|
|
482
|
-
SELECT DISTINCT picking_id, state FROM pickings
|
|
488
|
+
SELECT DISTINCT release_channel_id, picking_id, state FROM pickings
|
|
483
489
|
WHERE outgoing is false;
|
|
484
490
|
"""
|
|
485
491
|
return (query, (tuple(pickings.ids),))
|
|
@@ -489,20 +495,24 @@ class StockReleaseChannel(models.Model):
|
|
|
489
495
|
["move_dest_ids", "move_orig_ids", "picking_id"]
|
|
490
496
|
)
|
|
491
497
|
self.env["stock.picking"].flush_model(["state"])
|
|
492
|
-
for channel in self:
|
|
493
|
-
domain = self._field_picking_domains()["released"]
|
|
494
|
-
domain += [("release_channel_id", "=", channel.id)]
|
|
495
|
-
released = self.env["stock.picking"].search(domain)
|
|
496
498
|
|
|
497
|
-
|
|
499
|
+
domain = self._field_picking_domains()["released"]
|
|
500
|
+
domain += [("release_channel_id", "in", self.ids)]
|
|
501
|
+
released = self.env["stock.picking"].search(domain)
|
|
502
|
+
|
|
503
|
+
if not released:
|
|
504
|
+
for channel in self:
|
|
498
505
|
channel.picking_chain_ids = False
|
|
499
506
|
channel.count_picking_chain = 0
|
|
500
507
|
channel.count_picking_chain_in_progress = 0
|
|
501
508
|
channel.count_picking_chain_done = 0
|
|
502
|
-
|
|
509
|
+
return
|
|
503
510
|
|
|
504
|
-
|
|
505
|
-
|
|
511
|
+
self.env.cr.execute(*self._query_get_chain(released))
|
|
512
|
+
rows = self.env.cr.dictfetchall()
|
|
513
|
+
rows_by_channel = dict(groupby(rows, key=itemgetter("release_channel_id")))
|
|
514
|
+
for channel in self:
|
|
515
|
+
rows = rows_by_channel.get(channel.id, [])
|
|
506
516
|
channel.picking_chain_ids = [row["picking_id"] for row in rows]
|
|
507
517
|
channel.count_picking_chain_in_progress = sum(
|
|
508
518
|
[1 for row in rows if row["state"] not in ("cancel", "done")]
|
|
@@ -367,7 +367,7 @@ ul.auto-toc {
|
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
|
368
368
|
!! changes will be overwritten. !!
|
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
370
|
-
!! source digest: sha256:
|
|
370
|
+
!! source digest: sha256:c3300cb077a8ef44fa9666327c346ae054fb1a6d4df8c5ab5d166f76f5af7436
|
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
372
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/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/wms/tree/16.0/stock_release_channel"><img alt="OCA/wms" src="https://img.shields.io/badge/github-OCA%2Fwms-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/wms-16-0/wms-16-0-stock_release_channel"><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/wms&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
373
|
<p>Release channels are:</p>
|
|
@@ -126,3 +126,13 @@ class TestReleaseChannel(ReleaseChannelCase):
|
|
|
126
126
|
self.env.company.recompute_channel_on_pickings_at_release = True
|
|
127
127
|
move.release_available_to_promise()
|
|
128
128
|
self.assertEqual(move.picking_id.release_channel_id, channel)
|
|
129
|
+
|
|
130
|
+
def test_open_picking(self):
|
|
131
|
+
self.assertFalse(self.default_channel.open_picking_ids)
|
|
132
|
+
move = self._create_single_move(self.product1, 10)
|
|
133
|
+
move.picking_id.assign_release_channel()
|
|
134
|
+
self.assertEqual(move.picking_id.release_channel_id.id, self.default_channel.id)
|
|
135
|
+
self.assertEqual(self.default_channel.open_picking_ids, move.picking_id)
|
|
136
|
+
move.quantity_done = move.product_uom_qty
|
|
137
|
+
move.picking_id._action_done()
|
|
138
|
+
self.assertFalse(self.default_channel.open_picking_ids)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-stock_release_channel
|
|
3
|
-
Version: 16.0.2.18.
|
|
3
|
+
Version: 16.0.2.18.2
|
|
4
4
|
Summary: Manage workload in WMS with release channels
|
|
5
5
|
Home-page: https://github.com/OCA/wms
|
|
6
6
|
Author: Camptocamp, BCIM, ACSONE SA/NV, Odoo Community Association (OCA)
|
|
@@ -25,7 +25,7 @@ Stock Release Channels
|
|
|
25
25
|
!! This file is generated by oca-gen-addon-readme !!
|
|
26
26
|
!! changes will be overwritten. !!
|
|
27
27
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
28
|
-
!! source digest: sha256:
|
|
28
|
+
!! source digest: sha256:c3300cb077a8ef44fa9666327c346ae054fb1a6d4df8c5ab5d166f76f5af7436
|
|
29
29
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
30
30
|
|
|
31
31
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
odoo/addons/stock_release_channel/README.rst,sha256=
|
|
1
|
+
odoo/addons/stock_release_channel/README.rst,sha256=JnHMW19GKaZ8GrNX3RgqJSdQ_ye_yhvFxep2v6exS3w,6403
|
|
2
2
|
odoo/addons/stock_release_channel/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
|
3
|
-
odoo/addons/stock_release_channel/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/stock_release_channel/__manifest__.py,sha256=MUFuQmoq10LAvkF0-FnBn9UGBISRdhdXiAgvoxgNNz4,1296
|
|
4
4
|
odoo/addons/stock_release_channel/data/ir_cron_data.xml,sha256=Fs0se4lPKelUpNvJnfEde32718SRlKCt0hEqQWQ-tQg,639
|
|
5
5
|
odoo/addons/stock_release_channel/data/queue_job_data.xml,sha256=MyCGOSZNti3sgtwtco1_EBCM246w2JG8F478tczgbtA,592
|
|
6
6
|
odoo/addons/stock_release_channel/demo/stock_release_channel.xml,sha256=vV4B7aykN0VNn0xxubIHikwVi0RPMhZDWcYn5BH68ck,334
|
|
@@ -15,7 +15,7 @@ odoo/addons/stock_release_channel/models/res_config_settings.py,sha256=-oh2L7FWf
|
|
|
15
15
|
odoo/addons/stock_release_channel/models/res_partner.py,sha256=WAXmL3C_ghueQ2jsXIpWTLojf8ANcUNZ8_xd_yoos2w,521
|
|
16
16
|
odoo/addons/stock_release_channel/models/stock_move.py,sha256=iaPhHbzM12YtUjexaCU6MMTQcPPntJ0FJS_BX8NKRHE,1592
|
|
17
17
|
odoo/addons/stock_release_channel/models/stock_picking.py,sha256=kicXUKEUV8YxdzL10QDaAiQRMebbhpOLb7KL6LVQe4M,5653
|
|
18
|
-
odoo/addons/stock_release_channel/models/stock_release_channel.py,sha256=
|
|
18
|
+
odoo/addons/stock_release_channel/models/stock_release_channel.py,sha256=p6FzMDV2-GhTMrakCARjb2uXHa-eOLjEsT7VuCvwNtA,34438
|
|
19
19
|
odoo/addons/stock_release_channel/readme/CONFIGURE.rst,sha256=foUMWWFytuVRVkV1V4uA4FvsW2I5izyrcR1CzZ6mQTI,93
|
|
20
20
|
odoo/addons/stock_release_channel/readme/CONTRIBUTORS.rst,sha256=q95yj-6flBF2N4IB-vbF_p06ClGmIrCySl2bfz9ExPA,414
|
|
21
21
|
odoo/addons/stock_release_channel/readme/CREDITS.rst,sha256=-JppA6kiiAVqptoc7ytAB6vOqf_0W5uJrZLh70XGE3w,50
|
|
@@ -23,7 +23,7 @@ odoo/addons/stock_release_channel/readme/DESCRIPTION.rst,sha256=LJj2UQ3g5NteOFkf
|
|
|
23
23
|
odoo/addons/stock_release_channel/readme/USAGE.rst,sha256=uKImsGjEDoJdmYBbgXcDLcBQ8eh4wZzPE8kGfAQvyDA,1588
|
|
24
24
|
odoo/addons/stock_release_channel/security/stock_release_channel.xml,sha256=U0WfLbMKR4mnNdI4mfN8e7UTxLnyd17eVNhsBy-dMSc,1471
|
|
25
25
|
odoo/addons/stock_release_channel/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
26
|
-
odoo/addons/stock_release_channel/static/description/index.html,sha256=
|
|
26
|
+
odoo/addons/stock_release_channel/static/description/index.html,sha256=KjbAF3k9MoMFUa0cim9kDo3-KiObRhoqiv9Q6Itun2o,17424
|
|
27
27
|
odoo/addons/stock_release_channel/static/src/js/progressbar_fractional_widget.js,sha256=sZBSmKdZSR1GFeu04iOH72h7FX5CqujgfTRmFYhh5z0,3184
|
|
28
28
|
odoo/addons/stock_release_channel/static/src/scss/stock_release_channel.scss,sha256=DK0Azc8Gk3FlxeKzjZpLhRZzCQmgXdfLNmfz1CbNN0g,975
|
|
29
29
|
odoo/addons/stock_release_channel/tests/__init__.py,sha256=kjERz9Kti9xbMmP0MgbNnnSDUdMRzZqH78VLjFn3xfk,226
|
|
@@ -32,14 +32,14 @@ odoo/addons/stock_release_channel/tests/test_assign_job.py,sha256=E8k9L8VPSE9Pk_
|
|
|
32
32
|
odoo/addons/stock_release_channel/tests/test_channel_action.py,sha256=dtaYBCAOyNGyGWpDWDAAxVUgSWXNqR-AznKAq3iOLAI,5466
|
|
33
33
|
odoo/addons/stock_release_channel/tests/test_channel_computed_fields.py,sha256=TbVkrpn5Sq6nt-QRQEi2OisjkwUuvwPJ75a0V77FsM0,4725
|
|
34
34
|
odoo/addons/stock_release_channel/tests/test_channel_release_batch.py,sha256=nvLf6TqcnhaA78gSpmK7Pb9unqxTm0RnY4f1QcqFlkY,2247
|
|
35
|
-
odoo/addons/stock_release_channel/tests/test_release_channel.py,sha256=
|
|
35
|
+
odoo/addons/stock_release_channel/tests/test_release_channel.py,sha256=cY1c1DpOTb_zIF19_kZVIVZH9GZjaSa2TJeckFtDKDk,5507
|
|
36
36
|
odoo/addons/stock_release_channel/tests/test_release_channel_lifecycle.py,sha256=hCtjqWMgLorYhdnzB8lp3ksmC3qTBrrVVtEMuifrVvE,4455
|
|
37
37
|
odoo/addons/stock_release_channel/tests/test_release_channel_partner.py,sha256=jMdMJRZ1UR6z6diA-DxRmHm-AN01J0YFEa1d9KqctPk,3471
|
|
38
38
|
odoo/addons/stock_release_channel/views/res_config_settings.xml,sha256=-7hoXY3H-4sNSsSgW4Z2Un2K4Y_HB07yBhnpZspECj0,1701
|
|
39
39
|
odoo/addons/stock_release_channel/views/res_partner.xml,sha256=_eJwfkaXRVNSVcg62MyTg7EJjA4fxQdCujMkDylio0Q,995
|
|
40
40
|
odoo/addons/stock_release_channel/views/stock_picking_views.xml,sha256=mtspBuMsNlkKoSUw3-SR16PVxIaSj7JTQ1JfvAGwG5c,2824
|
|
41
41
|
odoo/addons/stock_release_channel/views/stock_release_channel_views.xml,sha256=XmTz3w6VpJ0Rxhp9HGwTPB6Y4bb5maE2hPVT-9JBZ9Y,48468
|
|
42
|
-
odoo_addon_stock_release_channel-16.0.2.18.
|
|
43
|
-
odoo_addon_stock_release_channel-16.0.2.18.
|
|
44
|
-
odoo_addon_stock_release_channel-16.0.2.18.
|
|
45
|
-
odoo_addon_stock_release_channel-16.0.2.18.
|
|
42
|
+
odoo_addon_stock_release_channel-16.0.2.18.2.dist-info/METADATA,sha256=cHCoUSeZSdxw_Lc74xKGGs3l6zNakk6BpziKgKbgSrs,7131
|
|
43
|
+
odoo_addon_stock_release_channel-16.0.2.18.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
44
|
+
odoo_addon_stock_release_channel-16.0.2.18.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
|
45
|
+
odoo_addon_stock_release_channel-16.0.2.18.2.dist-info/RECORD,,
|