odoo-addon-stock-release-channel 16.0.2.19.0__py3-none-any.whl → 16.0.3.0.0__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.
@@ -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:01faeddc577b5d42e1ae117ebfe33bfe0990199904d5f038671d2fe58db87ca5
10
+ !! source digest: sha256:d3e4a6ca33a07a0967c75174dc29fa2dc7cc413f659bcd0686dd3238396bd3a8
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.19.0",
8
+ "version": "16.0.3.0.0",
9
9
  "development_status": "Beta",
10
10
  "license": "AGPL-3",
11
11
  "author": "Camptocamp, BCIM, ACSONE SA/NV, Odoo Community Association (OCA)",
@@ -1,4 +1,5 @@
1
1
  # Copyright 2023 ACSONE SA/NV
2
+ # Copyright 2025 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
2
3
  # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
4
 
4
5
  from odoo import fields, models
@@ -16,3 +17,13 @@ class ResPartner(models.Model):
16
17
  string="Release Channels",
17
18
  domain="company_id and [('company_id', '=', company_id)] or []",
18
19
  )
20
+
21
+ @property
22
+ def _release_channel_possible_candidate_domain(self):
23
+ """Domain fo finding channel candidates based on partner"""
24
+ self.ensure_one()
25
+ return [
26
+ "|",
27
+ ("partner_ids", "=", False),
28
+ ("partner_ids", "in", self.id),
29
+ ]
@@ -1,4 +1,5 @@
1
1
  # Copyright 2020 Camptocamp
2
+ # Copyright 2024 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
2
3
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
3
4
 
4
5
  from odoo import _, exceptions, fields, models
@@ -103,48 +104,73 @@ class StockPicking(models.Model):
103
104
  self.ensure_one()
104
105
  return (
105
106
  self.env["stock.release.channel"]
106
- .search(self._get_release_channel_possible_candidate_domain())
107
+ .search(self._release_channel_possible_candidate_domain)
107
108
  .sorted(key=lambda r: (not bool(r.partner_ids), r.sequence))
108
109
  )
109
110
 
110
- def _get_release_channel_possible_candidate_domain_channel(self):
111
- return [
111
+ @property
112
+ def _release_channel_possible_candidate_domain(self):
113
+ """Domain for finding channel candidates"""
114
+ self.ensure_one()
115
+ domain_base = self._release_channel_possible_candidate_domain_base
116
+ domain = [
112
117
  ("is_manual_assignment", "=", False),
113
- ("state", "!=", "asleep"),
118
+ ("state", "in", ("open", "locked")),
119
+ "|",
120
+ ("picking_type_ids", "=", False),
121
+ ("picking_type_ids", "in", self.picking_type_id.ids),
114
122
  ]
123
+ domain_partner = (
124
+ self.partner_id._release_channel_possible_candidate_domain
125
+ if self.partner_id
126
+ else []
127
+ )
128
+ domain_extras = []
129
+ if self._release_channel_possible_candidate_domain_apply_extras:
130
+ domain_extras = self._release_channel_possible_candidate_domain_extras
131
+ domain = expression.AND([domain, domain_base, domain_partner] + domain_extras)
132
+ return domain
133
+
134
+ @property
135
+ def _release_channel_possible_candidate_domain_base(self):
136
+ """Base domain for finding channel candidates based on picking.
137
+
138
+ This is the base domain we always want to apply.
115
139
 
116
- def _get_release_channel_possible_candidate_domain_picking(self):
140
+ This is used by stock_release_channel_partner_by_date where you
141
+ can force a channel for a partner on a specific day. This domain is
142
+ used to check if there is a specific channel defined for the warehouse
143
+ (and carrier with delivery module).
144
+ """
145
+ # when a warehouse is defined on the channel, it must always match
146
+ # otherwise fallback on the picking type
117
147
  return [
118
148
  ("company_id", "=", self.company_id.id),
119
149
  "|",
150
+ "&",
151
+ ("warehouse_id", "=", False),
152
+ "|",
120
153
  ("picking_type_ids", "=", False),
121
154
  ("picking_type_ids", "in", self.picking_type_id.ids),
122
- "|",
123
- ("warehouse_id", "=", False),
124
155
  ("warehouse_id", "=", self.picking_type_id.warehouse_id.id),
125
156
  ]
126
157
 
127
- def _get_release_channel_possible_candidate_domain_partner(self):
128
- return [
129
- "|",
130
- ("partner_ids", "=", False),
131
- ("partner_ids", "in", self.partner_id.ids),
132
- ]
158
+ @property
159
+ def _release_channel_possible_candidate_domain_extras(self):
160
+ """Additional domains for finding channel candidates based on picking.
133
161
 
134
- def _inject_possible_candidate_domain_partner(self):
135
- """Hooks that could be overridden.
162
+ Allow extension modules to add domain rules. Each module can add a
163
+ domain to the list.
136
164
 
137
- Return a boolean.
165
+ Those domains won't be used by stock_release_channel_partner_by_date
166
+ where you can force a channel for a partner on a specific day.
138
167
  """
139
- return True
168
+ return []
140
169
 
141
- def _get_release_channel_possible_candidate_domain(self):
142
- self.ensure_one()
143
- domain_channel = self._get_release_channel_possible_candidate_domain_channel()
144
- domain_picking = self._get_release_channel_possible_candidate_domain_picking()
145
- domain = expression.AND([domain_channel, domain_picking])
146
- if self._inject_possible_candidate_domain_partner():
147
- domain = expression.AND(
148
- [domain, self._get_release_channel_possible_candidate_domain_partner()]
149
- )
150
- return domain
170
+ @property
171
+ def _release_channel_possible_candidate_domain_apply_extras(self):
172
+ """Extra domains can be discarded.
173
+
174
+ For example, when there is an SO commitment date.
175
+ """
176
+ return True
@@ -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:01faeddc577b5d42e1ae117ebfe33bfe0990199904d5f038671d2fe58db87ca5
370
+ !! source digest: sha256:d3e4a6ca33a07a0967c75174dc29fa2dc7cc413f659bcd0686dd3238396bd3a8
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&amp;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>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-stock_release_channel
3
- Version: 16.0.2.19.0
3
+ Version: 16.0.3.0.0
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:01faeddc577b5d42e1ae117ebfe33bfe0990199904d5f038671d2fe58db87ca5
28
+ !! source digest: sha256:d3e4a6ca33a07a0967c75174dc29fa2dc7cc413f659bcd0686dd3238396bd3a8
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=vzkqQgzROvzl84uIgmbqW6lC73__wyuI9H8dGmXPu_U,6403
1
+ odoo/addons/stock_release_channel/README.rst,sha256=HlGy6Yw_4Wi3IcfcXeimZimA2V0ccTHUbHahDfwJP7w,6403
2
2
  odoo/addons/stock_release_channel/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
3
- odoo/addons/stock_release_channel/__manifest__.py,sha256=fH4fypktf6FLNmFGRyKdt9uAZnubGX5xW39NK7PyzvM,1296
3
+ odoo/addons/stock_release_channel/__manifest__.py,sha256=eQzfUaGnisUlOgvWPrcJ2-tb8l4cXGMW4vQkyQb2NL8,1295
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
@@ -12,9 +12,9 @@ odoo/addons/stock_release_channel/migrations/16.0.1.0.1/pre-migrate.py,sha256=lE
12
12
  odoo/addons/stock_release_channel/models/__init__.py,sha256=7bzf3wef0yG6SnmE67xQwGn1EM4phSOfm0o4t8k6-oU,175
13
13
  odoo/addons/stock_release_channel/models/res_company.py,sha256=Vj27CcrLlr8vsgMelp9ix5z8IkJYhfEb7FBdO23r2VI,616
14
14
  odoo/addons/stock_release_channel/models/res_config_settings.py,sha256=-oh2L7FWf60ACuqY5ojgRvlrqNBr9XXMCd78XVN_w9c,571
15
- odoo/addons/stock_release_channel/models/res_partner.py,sha256=WAXmL3C_ghueQ2jsXIpWTLojf8ANcUNZ8_xd_yoos2w,521
15
+ odoo/addons/stock_release_channel/models/res_partner.py,sha256=5KcUkm-aelZwBigSybqRHDTjUC3JWHH7Nc0jpiNSe1o,878
16
16
  odoo/addons/stock_release_channel/models/stock_move.py,sha256=iaPhHbzM12YtUjexaCU6MMTQcPPntJ0FJS_BX8NKRHE,1592
17
- odoo/addons/stock_release_channel/models/stock_picking.py,sha256=kicXUKEUV8YxdzL10QDaAiQRMebbhpOLb7KL6LVQe4M,5653
17
+ odoo/addons/stock_release_channel/models/stock_picking.py,sha256=uSffxZEGJ1x1ULZ2FhaOnjXe4b3udC6WXFjpZXOMHHw,6756
18
18
  odoo/addons/stock_release_channel/models/stock_release_channel.py,sha256=5P2JMajuZFy5sx5uWHyBR6XibOypj-mrEvAgiRetIyw,34545
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
@@ -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=Krlo7YUW18BhS9n8HAde0lWW6rfUUToLuAGANntaQCQ,17424
26
+ odoo/addons/stock_release_channel/static/description/index.html,sha256=vC61d1UiRCNyy21qI9coG-RPGXVn-a3Pj07XMvSCuNc,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
@@ -39,7 +39,7 @@ odoo/addons/stock_release_channel/views/res_config_settings.xml,sha256=-7hoXY3H-
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.19.0.dist-info/METADATA,sha256=lZzBHNWtI6qAtGwo4mqUviZge7DRAJvEhvqJTC5xOLU,7131
43
- odoo_addon_stock_release_channel-16.0.2.19.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
44
- odoo_addon_stock_release_channel-16.0.2.19.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
45
- odoo_addon_stock_release_channel-16.0.2.19.0.dist-info/RECORD,,
42
+ odoo_addon_stock_release_channel-16.0.3.0.0.dist-info/METADATA,sha256=P07Ys9CXW8-QRfWXyG7pl577y_MrRxKpqiqdh7cDOh0,7130
43
+ odoo_addon_stock_release_channel-16.0.3.0.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
44
+ odoo_addon_stock_release_channel-16.0.3.0.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
45
+ odoo_addon_stock_release_channel-16.0.3.0.0.dist-info/RECORD,,