odoo-addon-stock-release-channel 16.0.2.15.2__py3-none-any.whl → 16.0.2.17.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:b2322ba24649889bf5f3c54b02e62906f898c4f47c89a66e5b56045f97a7c24f
10
+ !! source digest: sha256:92e089b6110d418cbfb3602da22df14e753572bd0f50ed578d07440f384f9166
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.15.2",
8
+ "version": "16.0.2.17.0",
9
9
  "development_status": "Beta",
10
10
  "license": "AGPL-3",
11
11
  "author": "Camptocamp, BCIM, ACSONE SA/NV, Odoo Community Association (OCA)",
@@ -197,6 +197,11 @@ msgstr ""
197
197
  msgid "Companies"
198
198
  msgstr ""
199
199
 
200
+ #. module: stock_release_channel
201
+ #: model:ir.model.fields,field_description:stock_release_channel.field_stock_release_channel__company_id
202
+ msgid "Company"
203
+ msgstr ""
204
+
200
205
  #. module: stock_release_channel
201
206
  #: model:ir.model,name:stock_release_channel.model_res_config_settings
202
207
  msgid "Config Settings"
@@ -14,4 +14,5 @@ class ResPartner(models.Model):
14
14
  column1="partner_id",
15
15
  column2="channel_id",
16
16
  string="Release Channels",
17
+ domain="company_id and [('company_id', '=', company_id)] or []",
17
18
  )
@@ -2,6 +2,7 @@
2
2
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
3
3
 
4
4
  from odoo import _, exceptions, fields, models
5
+ from odoo.osv import expression
5
6
 
6
7
  from odoo.addons.queue_job.job import identity_exact
7
8
 
@@ -106,18 +107,44 @@ class StockPicking(models.Model):
106
107
  .sorted(key=lambda r: (not bool(r.partner_ids), r.sequence))
107
108
  )
108
109
 
109
- def _get_release_channel_possible_candidate_domain(self):
110
- self.ensure_one()
110
+ def _get_release_channel_possible_candidate_domain_channel(self):
111
111
  return [
112
112
  ("is_manual_assignment", "=", False),
113
113
  ("state", "!=", "asleep"),
114
+ ]
115
+
116
+ def _get_release_channel_possible_candidate_domain_picking(self):
117
+ return [
118
+ ("company_id", "=", self.company_id.id),
114
119
  "|",
115
120
  ("picking_type_ids", "=", False),
116
121
  ("picking_type_ids", "in", self.picking_type_id.ids),
117
122
  "|",
118
123
  ("warehouse_id", "=", False),
119
124
  ("warehouse_id", "=", self.picking_type_id.warehouse_id.id),
125
+ ]
126
+
127
+ def _get_release_channel_possible_candidate_domain_partner(self):
128
+ return [
120
129
  "|",
121
130
  ("partner_ids", "=", False),
122
131
  ("partner_ids", "in", self.partner_id.ids),
123
132
  ]
133
+
134
+ def _inject_possible_candidate_domain_partner(self):
135
+ """Hooks that could be overridden.
136
+
137
+ Return a boolean.
138
+ """
139
+ return True
140
+
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
@@ -41,11 +41,19 @@ class StockReleaseChannel(models.Model):
41
41
  release_forbidden = fields.Boolean(string="Forbid to release this channel")
42
42
  sequence = fields.Integer(default=lambda self: self._default_sequence())
43
43
  color = fields.Integer()
44
+ company_id = fields.Many2one(
45
+ string="Company",
46
+ comodel_name="res.company",
47
+ required=True,
48
+ default=lambda s: s.env.company.id,
49
+ index=True,
50
+ )
44
51
  warehouse_id = fields.Many2one(
45
52
  "stock.warehouse",
46
53
  string="Warehouse",
47
54
  index=True,
48
55
  help="Warehouse for which this channel is relevant",
56
+ check_company=True,
49
57
  )
50
58
  picking_type_ids = fields.Many2many(
51
59
  "stock.picking.type",
@@ -54,8 +62,9 @@ class StockReleaseChannel(models.Model):
54
62
  "picking_type_id",
55
63
  string="Operation Types",
56
64
  domain="warehouse_id"
57
- " and [('warehouse_id', '=', warehouse_id), ('code', '=', 'outgoing')]"
58
- " or [('code', '=', 'outgoing')]",
65
+ " and [('warehouse_id', '=', warehouse_id), ('code', '=', 'outgoing'), "
66
+ "('company_id', 'in', (company_id, False))]"
67
+ " or [('code', '=', 'outgoing'), ('company_id', 'in', (company_id, False))]",
59
68
  )
60
69
  rule_domain = fields.Char(
61
70
  string="Domain",
@@ -91,6 +100,7 @@ class StockReleaseChannel(models.Model):
91
100
  string="Transfers",
92
101
  comodel_name="stock.picking",
93
102
  inverse_name="release_channel_id",
103
+ check_company=True,
94
104
  )
95
105
 
96
106
  # beware not to store any value which can be changed by concurrent
@@ -219,6 +229,7 @@ class StockReleaseChannel(models.Model):
219
229
  column2="partner_id",
220
230
  string="Partners",
221
231
  context={"active_test": False},
232
+ check_company=True,
222
233
  )
223
234
  show_last_picking_done = fields.Boolean(
224
235
  compute="_compute_show_last_picking_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:b2322ba24649889bf5f3c54b02e62906f898c4f47c89a66e5b56045f97a7c24f
370
+ !! source digest: sha256:92e089b6110d418cbfb3602da22df14e753572bd0f50ed578d07440f384f9166
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>
@@ -16,6 +16,7 @@ class ReleaseChannelCase(common.TransactionCase):
16
16
  def setUpClass(cls):
17
17
  super().setUpClass()
18
18
  cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
19
+ cls.company2 = cls.env.ref("stock.res_company_1")
19
20
  cls.customer_location = cls.env.ref("stock.stock_location_customers")
20
21
  cls.default_channel = cls.env.ref(
21
22
  "stock_release_channel.stock_release_channel_default"
@@ -46,6 +46,18 @@ class TestReleaseChannel(ReleaseChannelCase):
46
46
  )
47
47
  self._test_assign_channels(channel)
48
48
 
49
+ def test_assign_channel_invalid_company(self):
50
+ # Create a channel for high priority moves but for another company
51
+ self._create_channel(
52
+ name="Test Domain",
53
+ sequence=1,
54
+ rule_domain=[("priority", "=", "1")],
55
+ company_id=self.company2.id,
56
+ )
57
+ # This move with high priority is then put in a transfer belonging to
58
+ # the default channel (default company)
59
+ self._test_assign_channels(self.default_channel)
60
+
49
61
  def test_invalid_code(self):
50
62
  with self.assertRaises(exceptions.ValidationError):
51
63
  self._create_channel(
@@ -1,11 +1,10 @@
1
1
  # Copyright 2020 Camptocamp (https://www.camptocamp.com)
2
2
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
3
3
 
4
-
5
4
  from .common import ReleaseChannelCase
6
5
 
7
6
 
8
- class TestReleaseChannelPartner(ReleaseChannelCase):
7
+ class ReleaseChannelPartnerCommon(ReleaseChannelCase):
9
8
  @classmethod
10
9
  def setUpClass(cls):
11
10
  super().setUpClass()
@@ -31,6 +30,8 @@ class TestReleaseChannelPartner(ReleaseChannelCase):
31
30
  cls.partner2.stock_release_channel_ids = False
32
31
  cls.moves = cls.move + cls.move2
33
32
 
33
+
34
+ class TestReleaseChannelPartner(ReleaseChannelPartnerCommon):
34
35
  def test_00(self):
35
36
  """partner release channel is higher priority than other channels"""
36
37
  self.moves.picking_id.assign_release_channel()
@@ -80,6 +80,14 @@
80
80
  <h1>
81
81
  <field name="name" />
82
82
  </h1>
83
+ <group>
84
+ <field name="company_id" invisible="1" />
85
+ <field
86
+ name="company_id"
87
+ groups="base.group_multi_company"
88
+ options="{'no_create': True}"
89
+ />
90
+ </group>
83
91
  <notebook>
84
92
  <page
85
93
  string="Options"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-stock_release_channel
3
- Version: 16.0.2.15.2
3
+ Version: 16.0.2.17.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:b2322ba24649889bf5f3c54b02e62906f898c4f47c89a66e5b56045f97a7c24f
28
+ !! source digest: sha256:92e089b6110d418cbfb3602da22df14e753572bd0f50ed578d07440f384f9166
29
29
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30
30
 
31
31
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,21 +1,21 @@
1
- odoo/addons/stock_release_channel/README.rst,sha256=bOaGpBuU45hJSZgjnRRrHsLdDq9Qz3yzPVLYSCqD8rE,6403
1
+ odoo/addons/stock_release_channel/README.rst,sha256=hUfupO9aQoQxBES_MBCDLmIDMMMPzHfAThyF0i3yX68,6403
2
2
  odoo/addons/stock_release_channel/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
3
- odoo/addons/stock_release_channel/__manifest__.py,sha256=o6REQzO_L-RYY77qQT2lpatatVhtcgIA7ITJ9kwKVj4,1296
3
+ odoo/addons/stock_release_channel/__manifest__.py,sha256=M-_mWrUmzrVNBEnnLlnL6KPsAf_JNep-0EDa_4jcsng,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
7
7
  odoo/addons/stock_release_channel/i18n/es.po,sha256=yJIqU3iZL9e1aV6SeQomIb0nkxYczSPpHPhqXYmPXOA,33650
8
8
  odoo/addons/stock_release_channel/i18n/fr.po,sha256=3_l_g-LnwmpbSWY5BsrebfQzrQXfskyLi3IeTCQcG6c,28992
9
9
  odoo/addons/stock_release_channel/i18n/it.po,sha256=VShMF-P_3ZOd5UiW8HpLDk67gv3N2mpnZfIEirioH4c,34119
10
- odoo/addons/stock_release_channel/i18n/stock_release_channel.pot,sha256=8Jw1rWKadM3_zlO51HS-HQpp1mWKv-5rNqtQ71fgoUw,28519
10
+ odoo/addons/stock_release_channel/i18n/stock_release_channel.pot,sha256=SPoHpvMj8FUAFEWLFoDBd3hH6jazkU-khcUpKYUPS2o,28684
11
11
  odoo/addons/stock_release_channel/migrations/16.0.1.0.1/pre-migrate.py,sha256=lEss8ujyoQWzjjKzMCOmV79BNEVNPshmY-Xanl7H9CQ,375
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=DFaj1L1QFnUNhRGrOlyturX3BYjXrplk-Om4skzmPCI,448
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
- odoo/addons/stock_release_channel/models/stock_picking.py,sha256=ByS0jEkNzvh1EaFcIAFmBXQuoVHcwwv-aNlTteYwS3M,4679
18
- odoo/addons/stock_release_channel/models/stock_release_channel.py,sha256=tmM-QvZSDK_h_YPuzwXWVcyFqRzePirMDE79ixaz-lo,33427
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=dUGTsDHtpu3KvbwcfbxhowtcIISVgSBsNS40WgyQ5v8,33797
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,23 +23,23 @@ 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=G9bfwXDSgHg7rD8cGjnUAGRG0W7gzn9cJBKGu8I3fIU,17424
26
+ odoo/addons/stock_release_channel/static/description/index.html,sha256=Kldz8KCR9rX26gDStSjMxAjWa3XJy-xJclRA09dNAv0,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
30
- odoo/addons/stock_release_channel/tests/common.py,sha256=Ag_Xv6aVV753jEd4qU_GGCsml6Pa2HCHqtNAu1ZoOuw,7757
30
+ odoo/addons/stock_release_channel/tests/common.py,sha256=hcuHhfMv99mdp_M6tlU99nRPq9obi3gnoilgHeY1FMw,7815
31
31
  odoo/addons/stock_release_channel/tests/test_assign_job.py,sha256=E8k9L8VPSE9Pk_xK8U9qlqYUttrYJ0iGub8MolU06fk,2847
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=lOoNgnXys26yek_wqxOgqAFmho4mfIQoljfQ-NLvzMs,4481
35
+ odoo/addons/stock_release_channel/tests/test_release_channel.py,sha256=G68FjTw0BQUkCNLDzMiwcFb-tiN5Aq2ekdLnQBcOA8w,4978
36
36
  odoo/addons/stock_release_channel/tests/test_release_channel_lifecycle.py,sha256=hCtjqWMgLorYhdnzB8lp3ksmC3qTBrrVVtEMuifrVvE,4455
37
- odoo/addons/stock_release_channel/tests/test_release_channel_partner.py,sha256=hr7pvlxHrpPk2pIosivIiboJZGcv4HnE8D6AZ-Zhiwc,3407
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
- odoo/addons/stock_release_channel/views/stock_release_channel_views.xml,sha256=U_FLuzsfAAo6GIMhoa_TY5rhySQRxeWJDNeR5NF8Zoo,48125
42
- odoo_addon_stock_release_channel-16.0.2.15.2.dist-info/METADATA,sha256=2gF6XR1uA9QB73Ti2YW9hCR9XriRIGa6wvv9Kds72qo,7134
43
- odoo_addon_stock_release_channel-16.0.2.15.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
44
- odoo_addon_stock_release_channel-16.0.2.15.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
45
- odoo_addon_stock_release_channel-16.0.2.15.2.dist-info/RECORD,,
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.17.0.dist-info/METADATA,sha256=XTeRdys4l3xlDGOqmXUJX8-Fg31i2WXKccqtEzEc7mc,7134
43
+ odoo_addon_stock_release_channel-16.0.2.17.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
44
+ odoo_addon_stock_release_channel-16.0.2.17.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
45
+ odoo_addon_stock_release_channel-16.0.2.17.0.dist-info/RECORD,,