odoo-addon-stock-move-location 16.0.1.3.1__py3-none-any.whl → 16.0.1.4.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.
- odoo/addons/stock_move_location/README.rst +5 -3
- odoo/addons/stock_move_location/__manifest__.py +1 -1
- odoo/addons/stock_move_location/i18n/stock_move_location.pot +0 -1
- odoo/addons/stock_move_location/readme/CONTRIBUTORS.md +1 -0
- odoo/addons/stock_move_location/readme/USAGE.md +22 -28
- odoo/addons/stock_move_location/static/description/index.html +11 -7
- odoo/addons/stock_move_location/tests/test_common.py +29 -26
- odoo/addons/stock_move_location/tests/test_move_location.py +75 -3
- odoo/addons/stock_move_location/views/stock_picking_type_views.xml +1 -1
- odoo/addons/stock_move_location/wizard/stock_move_location.py +45 -31
- odoo/addons/stock_move_location/wizard/stock_move_location.xml +10 -11
- {odoo_addon_stock_move_location-16.0.1.3.1.dist-info → odoo_addon_stock_move_location-16.0.1.4.0.dist-info}/METADATA +7 -8
- {odoo_addon_stock_move_location-16.0.1.3.1.dist-info → odoo_addon_stock_move_location-16.0.1.4.0.dist-info}/RECORD +15 -15
- {odoo_addon_stock_move_location-16.0.1.3.1.dist-info → odoo_addon_stock_move_location-16.0.1.4.0.dist-info}/WHEEL +0 -0
- {odoo_addon_stock_move_location-16.0.1.3.1.dist-info → odoo_addon_stock_move_location-16.0.1.4.0.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ Move Stock Location
|
|
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:b188235583d8ffee97982515cd164a26620734c9758c886ffae1b371d3843acc
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -62,8 +62,8 @@ If you want to transfer a full quant:
|
|
62
62
|
- Select the quantities which you want move to another location
|
63
63
|
|
64
64
|
If you go to the Inventory Dashboard you can see the button "Move from
|
65
|
-
location" in each of the picking types (only applicable to internal
|
66
|
-
transfers). Press it and you will be directed to the wizard.
|
65
|
+
location" in each of the picking types (only applicable to internal and
|
66
|
+
outgoing transfers). Press it and you will be directed to the wizard.
|
67
67
|
|
68
68
|
|image1|
|
69
69
|
|
@@ -143,6 +143,8 @@ Contributors
|
|
143
143
|
|
144
144
|
- Aung Ko Ko Lin
|
145
145
|
|
146
|
+
- Laurent Mignon <laurent.mignon@acsone.eu>
|
147
|
+
|
146
148
|
Maintainers
|
147
149
|
-----------
|
148
150
|
|
@@ -69,7 +69,6 @@ msgstr ""
|
|
69
69
|
|
70
70
|
#. module: stock_move_location
|
71
71
|
#: model:ir.model.fields,field_description:stock_move_location.field_wiz_stock_move_location__edit_locations
|
72
|
-
#: model_terms:ir.ui.view,arch_db:stock_move_location.view_wiz_stock_move_location_form_stock_move_location
|
73
72
|
msgid "Edit Locations"
|
74
73
|
msgstr ""
|
75
74
|
|
@@ -1,43 +1,37 @@
|
|
1
|
-
- A new menu item Operations \> Move from location... opens a wizard
|
2
|
-
|
3
|
-
- Select origin and destination locations and press "IMMEDIATE TRANSFER"
|
4
|
-
|
1
|
+
- A new menu item Operations \> Move from location... opens a wizard where 2 locations
|
2
|
+
can be specified.
|
3
|
+
- Select origin and destination locations and press "IMMEDIATE TRANSFER" or "PLANNED
|
4
|
+
TRANSFER"
|
5
5
|
- Press ADD ALL button to add all products available
|
6
|
-
- Those lines can be edited. Move quantity can't be more than a max
|
7
|
-
available quantity
|
6
|
+
- Those lines can be edited. Move quantity can't be more than a max available quantity
|
8
7
|
- Move doesn't care about the reservations and will move stuff anyway
|
9
|
-
- If during your operation with the wizard the real quantity will change
|
10
|
-
|
11
|
-
- Products will be moved and a form view of picking that did that will
|
12
|
-
|
13
|
-
- If "PLANNED TRANSFER" is used - the picking won't be validated
|
14
|
-
automatically
|
8
|
+
- If during your operation with the wizard the real quantity will change it will move
|
9
|
+
only the available quantity at the button press
|
10
|
+
- Products will be moved and a form view of picking that did that will show up
|
11
|
+
- If "PLANNED TRANSFER" is used - the picking won't be validated automatically
|
15
12
|
|
16
13
|
If you want to transfer a full quant:
|
17
14
|
|
18
|
-
- Go to Inventory \> Products \> Products and click "On hand" smart
|
19
|
-
|
20
|
-
opened.
|
15
|
+
- Go to Inventory \> Products \> Products and click "On hand" smart button or Inventory
|
16
|
+
\> Reporting \> Inventory, the quants view will be opened.
|
21
17
|
- Select the quantities which you want move to another location
|
22
18
|
|
23
|
-
If you go to the Inventory Dashboard you can see the button "Move from
|
24
|
-
|
25
|
-
|
19
|
+
If you go to the Inventory Dashboard you can see the button "Move from location" in each
|
20
|
+
of the picking types (only applicable to internal and outgoing transfers). Press it and
|
21
|
+
you will be directed to the wizard.
|
26
22
|
|
27
23
|

|
28
24
|
|
29
|
-
To enable this option, check "Show Move On Hand Stock" in the Picking Type
|
25
|
+
To enable this option, check "Show Move On Hand Stock" in the Picking Type
|
26
|
+
configuration.
|
30
27
|
|
31
28
|

|
32
29
|
|
33
30
|
If you want transfer everything from stock.location
|
34
31
|
|
35
|
-
On a draft picking, add a button to fill with moves lines for all
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
reserved moves won't be listed in the operations. Use barcode interface
|
42
|
-
to scan a location and create an empty picking. Then use the fill with
|
43
|
-
stock button.
|
32
|
+
On a draft picking, add a button to fill with moves lines for all products in the source
|
33
|
+
destination. This allows to create a picking to move all the content of a location. The
|
34
|
+
Origin Location must have stock. The Destination Location has to be a final location. If
|
35
|
+
some quants are not available (i.e. reserved) the picking will be in partially available
|
36
|
+
state and reserved moves won't be listed in the operations. Use barcode interface to
|
37
|
+
scan a location and create an empty picking. Then use the fill with stock button.
|
@@ -8,10 +8,11 @@
|
|
8
8
|
|
9
9
|
/*
|
10
10
|
:Author: David Goodger (goodger@python.org)
|
11
|
-
:Id: $Id: html4css1.css
|
11
|
+
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
12
12
|
:Copyright: This stylesheet has been placed in the public domain.
|
13
13
|
|
14
14
|
Default cascading style sheet for the HTML output of Docutils.
|
15
|
+
Despite the name, some widely supported CSS2 features are used.
|
15
16
|
|
16
17
|
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
17
18
|
customize this style sheet.
|
@@ -274,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
|
274
275
|
margin-left: 2em ;
|
275
276
|
margin-right: 2em }
|
276
277
|
|
277
|
-
pre.code .ln { color:
|
278
|
+
pre.code .ln { color: gray; } /* line numbers */
|
278
279
|
pre.code, code { background-color: #eeeeee }
|
279
280
|
pre.code .comment, code .comment { color: #5C6576 }
|
280
281
|
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
@@ -300,7 +301,7 @@ span.option {
|
|
300
301
|
span.pre {
|
301
302
|
white-space: pre }
|
302
303
|
|
303
|
-
span.problematic {
|
304
|
+
span.problematic, pre.problematic {
|
304
305
|
color: red }
|
305
306
|
|
306
307
|
span.section-subtitle {
|
@@ -366,7 +367,7 @@ ul.auto-toc {
|
|
366
367
|
!! This file is generated by oca-gen-addon-readme !!
|
367
368
|
!! changes will be overwritten. !!
|
368
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
369
|
-
!! source digest: sha256:
|
370
|
+
!! source digest: sha256:b188235583d8ffee97982515cd164a26620734c9758c886ffae1b371d3843acc
|
370
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
371
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/stock-logistics-warehouse/tree/16.0/stock_move_location"><img alt="OCA/stock-logistics-warehouse" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--warehouse-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-logistics-warehouse-16-0/stock-logistics-warehouse-16-0-stock_move_location"><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/stock-logistics-warehouse&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
372
373
|
<p>This module allows to move entire location of products from one place to
|
@@ -411,8 +412,8 @@ opened.</li>
|
|
411
412
|
<li>Select the quantities which you want move to another location</li>
|
412
413
|
</ul>
|
413
414
|
<p>If you go to the Inventory Dashboard you can see the button “Move from
|
414
|
-
location” in each of the picking types (only applicable to internal
|
415
|
-
transfers). Press it and you will be directed to the wizard.</p>
|
415
|
+
location” in each of the picking types (only applicable to internal and
|
416
|
+
outgoing transfers). Press it and you will be directed to the wizard.</p>
|
416
417
|
<p><img alt="image1" src="https://user-images.githubusercontent.com/147538094/281480833-208ea309-0bad-43e7-bd6f-8384520afe00.png" /></p>
|
417
418
|
<p>To enable this option, check “Show Move On Hand Stock” in the Picking
|
418
419
|
Type configuration.</p>
|
@@ -482,12 +483,15 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
482
483
|
<li>Aung Ko Ko Lin</li>
|
483
484
|
</ul>
|
484
485
|
</li>
|
486
|
+
<li>Laurent Mignon <<a class="reference external" href="mailto:laurent.mignon@acsone.eu">laurent.mignon@acsone.eu</a>></li>
|
485
487
|
</ul>
|
486
488
|
</div>
|
487
489
|
<div class="section" id="maintainers">
|
488
490
|
<h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
|
489
491
|
<p>This module is maintained by the OCA.</p>
|
490
|
-
<a class="reference external image-reference" href="https://odoo-community.org"
|
492
|
+
<a class="reference external image-reference" href="https://odoo-community.org">
|
493
|
+
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
494
|
+
</a>
|
491
495
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
492
496
|
mission is to support the collaborative development of Odoo features and
|
493
497
|
promote its widespread use.</p>
|
@@ -92,46 +92,49 @@ class TestsCommon(common.TransactionCase):
|
|
92
92
|
)
|
93
93
|
cls.package = cls.env["stock.quant.package"].create({})
|
94
94
|
cls.package1 = cls.env["stock.quant.package"].create({})
|
95
|
+
|
95
96
|
cls.package2 = cls.env["stock.quant.package"].create({})
|
96
97
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
98
|
+
@classmethod
|
99
|
+
def setup_product_amounts(cls):
|
100
|
+
cls.set_product_amount(cls.product_no_lots, cls.internal_loc_1, 123)
|
101
|
+
cls.set_product_amount(
|
102
|
+
cls.product_lots, cls.internal_loc_1, 1.0, lot_id=cls.lot1
|
101
103
|
)
|
102
|
-
|
103
|
-
|
104
|
+
cls.set_product_amount(
|
105
|
+
cls.product_lots, cls.internal_loc_1, 1.0, lot_id=cls.lot2
|
104
106
|
)
|
105
|
-
|
106
|
-
|
107
|
+
cls.set_product_amount(
|
108
|
+
cls.product_lots, cls.internal_loc_1, 1.0, lot_id=cls.lot3
|
107
109
|
)
|
108
|
-
|
109
|
-
|
110
|
-
|
110
|
+
cls.set_product_amount(
|
111
|
+
cls.product_package,
|
112
|
+
cls.internal_loc_1,
|
111
113
|
1.0,
|
112
|
-
lot_id=
|
113
|
-
package_id=
|
114
|
+
lot_id=cls.lot4,
|
115
|
+
package_id=cls.package,
|
114
116
|
)
|
115
|
-
|
116
|
-
|
117
|
-
|
117
|
+
cls.set_product_amount(
|
118
|
+
cls.product_package,
|
119
|
+
cls.internal_loc_1,
|
118
120
|
1.0,
|
119
|
-
lot_id=
|
120
|
-
package_id=
|
121
|
+
lot_id=cls.lot4,
|
122
|
+
package_id=cls.package1,
|
121
123
|
)
|
122
|
-
|
123
|
-
|
124
|
-
|
124
|
+
cls.set_product_amount(
|
125
|
+
cls.product_package,
|
126
|
+
cls.internal_loc_1,
|
125
127
|
1.0,
|
126
|
-
lot_id=
|
127
|
-
package_id=
|
128
|
-
owner_id=
|
128
|
+
lot_id=cls.lot5,
|
129
|
+
package_id=cls.package2,
|
130
|
+
owner_id=cls.partner,
|
129
131
|
)
|
130
132
|
|
133
|
+
@classmethod
|
131
134
|
def set_product_amount(
|
132
|
-
|
135
|
+
cls, product, location, amount, lot_id=None, package_id=None, owner_id=None
|
133
136
|
):
|
134
|
-
|
137
|
+
cls.env["stock.quant"]._update_available_quantity(
|
135
138
|
product,
|
136
139
|
location,
|
137
140
|
amount,
|
@@ -8,9 +8,10 @@ from .test_common import TestsCommon
|
|
8
8
|
|
9
9
|
|
10
10
|
class TestMoveLocation(TestsCommon):
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
@classmethod
|
12
|
+
def setUpClass(cls):
|
13
|
+
super().setUpClass()
|
14
|
+
cls.setup_product_amounts()
|
14
15
|
|
15
16
|
def test_move_location_wizard(self):
|
16
17
|
"""Test a simple move."""
|
@@ -151,6 +152,77 @@ class TestMoveLocation(TestsCommon):
|
|
151
152
|
[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 123.0],
|
152
153
|
)
|
153
154
|
|
155
|
+
def test_planned_transfer_strict(self):
|
156
|
+
product = self.env["product.product"].create(
|
157
|
+
{"name": "Test", "type": "product", "tracking": "lot"}
|
158
|
+
)
|
159
|
+
lot = self.env["stock.lot"].create(
|
160
|
+
{
|
161
|
+
"name": "Test lot",
|
162
|
+
"product_id": product.id,
|
163
|
+
}
|
164
|
+
)
|
165
|
+
self.set_product_amount(
|
166
|
+
product,
|
167
|
+
self.internal_loc_1,
|
168
|
+
10.0,
|
169
|
+
)
|
170
|
+
self.set_product_amount(
|
171
|
+
product,
|
172
|
+
self.internal_loc_1,
|
173
|
+
10.0,
|
174
|
+
lot_id=lot,
|
175
|
+
)
|
176
|
+
wizard = self._create_wizard(self.internal_loc_1, self.internal_loc_2)
|
177
|
+
wizard.onchange_origin_location()
|
178
|
+
wizard = wizard.with_context(planned=True)
|
179
|
+
location_lines = wizard.stock_move_location_line_ids.filtered(
|
180
|
+
lambda r: r.product_id.id != product.id or r.lot_id.id != lot.id
|
181
|
+
)
|
182
|
+
location_lines.unlink()
|
183
|
+
wizard.action_move_location()
|
184
|
+
picking = wizard.picking_id
|
185
|
+
self.assertEqual(picking.state, "assigned")
|
186
|
+
self.assertEqual(
|
187
|
+
len(wizard.stock_move_location_line_ids), len(picking.move_line_ids)
|
188
|
+
)
|
189
|
+
location_line = wizard.stock_move_location_line_ids
|
190
|
+
wizard_lines = [
|
191
|
+
location_line.product_id.id,
|
192
|
+
location_line.lot_id.id,
|
193
|
+
location_line.move_quantity,
|
194
|
+
]
|
195
|
+
line = picking.move_line_ids
|
196
|
+
picking_lines = [line.product_id.id, line.lot_id.id, line.reserved_uom_qty]
|
197
|
+
self.assertEqual(
|
198
|
+
wizard_lines,
|
199
|
+
picking_lines,
|
200
|
+
"Mismatch between move location lines and move lines",
|
201
|
+
)
|
202
|
+
self.assertEqual(
|
203
|
+
picking.move_line_ids.reserved_uom_qty,
|
204
|
+
10.0,
|
205
|
+
)
|
206
|
+
|
207
|
+
# Create planned transfer for same quant
|
208
|
+
wizard = self._create_wizard(self.internal_loc_1, self.internal_loc_2)
|
209
|
+
wizard.onchange_origin_location()
|
210
|
+
wizard = wizard.with_context(planned=True)
|
211
|
+
location_lines = wizard.stock_move_location_line_ids.filtered(
|
212
|
+
lambda r: r.product_id.id != product.id or r.lot_id.id != lot.id
|
213
|
+
)
|
214
|
+
location_lines.unlink()
|
215
|
+
wizard.action_move_location()
|
216
|
+
picking = wizard.picking_id
|
217
|
+
self.assertEqual(picking.state, "assigned")
|
218
|
+
self.assertEqual(
|
219
|
+
len(wizard.stock_move_location_line_ids), len(picking.move_line_ids)
|
220
|
+
)
|
221
|
+
self.assertEqual(
|
222
|
+
picking.move_line_ids.mapped("reserved_uom_qty"),
|
223
|
+
[0.0],
|
224
|
+
)
|
225
|
+
|
154
226
|
def test_quant_transfer(self):
|
155
227
|
"""Test quants transfer."""
|
156
228
|
quants = self.product_lots.stock_quant_ids
|
@@ -71,7 +71,7 @@ class StockMoveLocationWizard(models.TransientModel):
|
|
71
71
|
for rec in self:
|
72
72
|
picking_type = self.env["stock.picking.type"]
|
73
73
|
base_domain = [
|
74
|
-
("code", "
|
74
|
+
("code", "in", ("internal", "outgoing")),
|
75
75
|
("warehouse_id.company_id", "=", company_id),
|
76
76
|
]
|
77
77
|
if rec.origin_location_id:
|
@@ -230,7 +230,7 @@ class StockMoveLocationWizard(models.TransientModel):
|
|
230
230
|
lot_id=line.lot_id,
|
231
231
|
package_id=line.package_id,
|
232
232
|
owner_id=line.owner_id,
|
233
|
-
strict=
|
233
|
+
strict=True,
|
234
234
|
)
|
235
235
|
move._update_reserved_quantity(
|
236
236
|
line.move_quantity,
|
@@ -239,7 +239,7 @@ class StockMoveLocationWizard(models.TransientModel):
|
|
239
239
|
lot_id=line.lot_id,
|
240
240
|
package_id=line.package_id,
|
241
241
|
owner_id=line.owner_id,
|
242
|
-
strict=
|
242
|
+
strict=True,
|
243
243
|
)
|
244
244
|
# Force the state to be assigned, instead of _action_assign,
|
245
245
|
# to avoid discarding the selected move_location_line.
|
@@ -303,25 +303,32 @@ class StockMoveLocationWizard(models.TransientModel):
|
|
303
303
|
)
|
304
304
|
return action
|
305
305
|
|
306
|
+
def _get_quants_domain(self):
|
307
|
+
return [("location_id", "=", self.origin_location_id.id)]
|
308
|
+
|
306
309
|
def _get_group_quants(self):
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
310
|
+
domain = self._get_quants_domain()
|
311
|
+
result = self.env["stock.quant"].read_group(
|
312
|
+
domain=domain,
|
313
|
+
fields=[
|
314
|
+
"product_id",
|
315
|
+
"lot_id",
|
316
|
+
"package_id",
|
317
|
+
"owner_id",
|
318
|
+
"quantity:sum",
|
319
|
+
"reserved_quantity:sum",
|
320
|
+
],
|
321
|
+
groupby=["product_id", "lot_id", "package_id", "owner_id"],
|
322
|
+
orderby="id",
|
323
|
+
lazy=False,
|
324
|
+
)
|
325
|
+
return result
|
319
326
|
|
320
327
|
def _get_stock_move_location_lines_values(self):
|
321
328
|
product_obj = self.env["product.product"]
|
322
329
|
product_data = []
|
323
330
|
for group in self._get_group_quants():
|
324
|
-
product = product_obj.browse(group
|
331
|
+
product = product_obj.browse(group["product_id"][0]).exists()
|
325
332
|
# Apply the putaway strategy
|
326
333
|
location_dest_id = (
|
327
334
|
self.apply_putaway_strategy
|
@@ -337,15 +344,33 @@ class StockMoveLocationWizard(models.TransientModel):
|
|
337
344
|
"origin_location_id": self.origin_location_id.id,
|
338
345
|
"destination_location_id": location_dest_id,
|
339
346
|
# cursor returns None instead of False
|
340
|
-
"lot_id": group.get("lot_id")
|
341
|
-
"package_id": group
|
342
|
-
|
347
|
+
"lot_id": group["lot_id"][0] if group.get("lot_id") else False,
|
348
|
+
"package_id": group["package_id"][0]
|
349
|
+
if group.get("package_id")
|
350
|
+
else False,
|
351
|
+
"owner_id": group["owner_id"][0]
|
352
|
+
if group.get("owner_id")
|
353
|
+
else False,
|
343
354
|
"product_uom_id": product.uom_id.id,
|
344
355
|
"custom": False,
|
345
356
|
}
|
346
357
|
)
|
347
358
|
return product_data
|
348
359
|
|
360
|
+
def _reset_stock_move_location_lines(self):
|
361
|
+
lines = []
|
362
|
+
line_model = self.env["wiz.stock.move.location.line"]
|
363
|
+
for line_val in self._get_stock_move_location_lines_values():
|
364
|
+
if line_val.get("max_quantity") <= 0:
|
365
|
+
continue
|
366
|
+
line = line_model.create(line_val)
|
367
|
+
line.max_quantity = line.get_max_quantity()
|
368
|
+
line.reserved_quantity = line.reserved_quantity
|
369
|
+
lines.append(line)
|
370
|
+
self.update(
|
371
|
+
{"stock_move_location_line_ids": [(6, 0, [line.id for line in lines])]}
|
372
|
+
)
|
373
|
+
|
349
374
|
@api.onchange("origin_location_id")
|
350
375
|
def onchange_origin_location(self):
|
351
376
|
# Get origin_location_disable context key to prevent load all origin
|
@@ -355,18 +380,7 @@ class StockMoveLocationWizard(models.TransientModel):
|
|
355
380
|
not self.env.context.get("origin_location_disable")
|
356
381
|
and self.origin_location_id
|
357
382
|
):
|
358
|
-
|
359
|
-
line_model = self.env["wiz.stock.move.location.line"]
|
360
|
-
for line_val in self._get_stock_move_location_lines_values():
|
361
|
-
if line_val.get("max_quantity") <= 0:
|
362
|
-
continue
|
363
|
-
line = line_model.create(line_val)
|
364
|
-
line.max_quantity = line.get_max_quantity()
|
365
|
-
line.reserved_quantity = line.reserved_quantity
|
366
|
-
lines.append(line)
|
367
|
-
self.update(
|
368
|
-
{"stock_move_location_line_ids": [(6, 0, [line.id for line in lines])]}
|
369
|
-
)
|
383
|
+
self._reset_stock_move_location_lines()
|
370
384
|
|
371
385
|
def clear_lines(self):
|
372
386
|
self._clear_lines()
|
@@ -10,18 +10,15 @@
|
|
10
10
|
<form>
|
11
11
|
<sheet>
|
12
12
|
<div class="oe_button_box" name="button_box" />
|
13
|
-
<
|
14
|
-
<label for="edit_locations">
|
15
|
-
Edit Locations
|
16
|
-
</label>
|
13
|
+
<group name="options">
|
17
14
|
<field name="edit_locations" widget="boolean_toggle" />
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
</
|
15
|
+
<field
|
16
|
+
name="apply_putaway_strategy"
|
17
|
+
string="Apply putaway strategy for moving products"
|
18
|
+
widget="boolean_toggle"
|
19
|
+
groups="stock.group_stock_multi_locations"
|
20
|
+
/>
|
21
|
+
</group>
|
25
22
|
<group name="picking_type">
|
26
23
|
<field name="picking_type_id" />
|
27
24
|
</group>
|
@@ -37,6 +34,8 @@
|
|
37
34
|
attrs="{'readonly': [('destination_location_disable', '=', True)]}"
|
38
35
|
/>
|
39
36
|
</group>
|
37
|
+
<group name="filters">
|
38
|
+
</group>
|
40
39
|
<group name="lines">
|
41
40
|
<field
|
42
41
|
name="stock_move_location_line_ids"
|
@@ -1,12 +1,11 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
|
-
Name: odoo-addon-
|
3
|
-
Version: 16.0.1.
|
2
|
+
Name: odoo-addon-stock_move_location
|
3
|
+
Version: 16.0.1.4.0
|
4
4
|
Summary: This module allows to move all stock in a stock location to an other one.
|
5
5
|
Home-page: https://github.com/OCA/stock-logistics-warehouse
|
6
6
|
Author: Julius Network Solutions, BCIM,Camptocamp,Odoo Community Association (OCA)
|
7
7
|
Author-email: support@odoo-community.org
|
8
8
|
License: AGPL-3
|
9
|
-
Platform: UNKNOWN
|
10
9
|
Classifier: Programming Language :: Python
|
11
10
|
Classifier: Framework :: Odoo
|
12
11
|
Classifier: Framework :: Odoo :: 16.0
|
@@ -23,7 +22,7 @@ Move Stock Location
|
|
23
22
|
!! This file is generated by oca-gen-addon-readme !!
|
24
23
|
!! changes will be overwritten. !!
|
25
24
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
26
|
-
!! source digest: sha256:
|
25
|
+
!! source digest: sha256:b188235583d8ffee97982515cd164a26620734c9758c886ffae1b371d3843acc
|
27
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
28
27
|
|
29
28
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -78,8 +77,8 @@ If you want to transfer a full quant:
|
|
78
77
|
- Select the quantities which you want move to another location
|
79
78
|
|
80
79
|
If you go to the Inventory Dashboard you can see the button "Move from
|
81
|
-
location" in each of the picking types (only applicable to internal
|
82
|
-
transfers). Press it and you will be directed to the wizard.
|
80
|
+
location" in each of the picking types (only applicable to internal and
|
81
|
+
outgoing transfers). Press it and you will be directed to the wizard.
|
83
82
|
|
84
83
|
|image1|
|
85
84
|
|
@@ -159,6 +158,8 @@ Contributors
|
|
159
158
|
|
160
159
|
- Aung Ko Ko Lin
|
161
160
|
|
161
|
+
- Laurent Mignon <laurent.mignon@acsone.eu>
|
162
|
+
|
162
163
|
Maintainers
|
163
164
|
-----------
|
164
165
|
|
@@ -175,5 +176,3 @@ promote its widespread use.
|
|
175
176
|
This module is part of the `OCA/stock-logistics-warehouse <https://github.com/OCA/stock-logistics-warehouse/tree/16.0/stock_move_location>`_ project on GitHub.
|
176
177
|
|
177
178
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
178
|
-
|
179
|
-
|
@@ -1,6 +1,6 @@
|
|
1
|
-
odoo/addons/stock_move_location/README.rst,sha256=
|
1
|
+
odoo/addons/stock_move_location/README.rst,sha256=44MKjDpGX9hHXKDPYK8bk8ykyH2q63OP5Vti9FyRsOk,6339
|
2
2
|
odoo/addons/stock_move_location/__init__.py,sha256=a529MU97ndMyMZsToYJmFXUHanvFmTyIZL9lmHsflPM,88
|
3
|
-
odoo/addons/stock_move_location/__manifest__.py,sha256=
|
3
|
+
odoo/addons/stock_move_location/__manifest__.py,sha256=SyxTE2a6wrGnqZrgFUVrUx3yuDRUfQorMXCSBT8xITM,901
|
4
4
|
odoo/addons/stock_move_location/init_hook.py,sha256=iIIjLsKG3z1Esn7A_tiIQZ9jXPvVs6EIhtNICdv-FQA,419
|
5
5
|
odoo/addons/stock_move_location/data/stock_quant_view.xml,sha256=g7KS13Q9jEIZTKiNHjWrFcggfYyfK2ZW2VONnCLSZaI,635
|
6
6
|
odoo/addons/stock_move_location/i18n/de.po,sha256=fS9Z6po8XinTgKYyVhcPgld_LU8F4U-86YxWLqj7610,11196
|
@@ -12,29 +12,29 @@ odoo/addons/stock_move_location/i18n/it.po,sha256=kUcJfbX6NOe6xrSARECRFTV5oD24zA
|
|
12
12
|
odoo/addons/stock_move_location/i18n/ja.po,sha256=tnLPccZjpuZi46x7JnLbAuIr4AaZ6lvdmqkMRzMXUU4,11530
|
13
13
|
odoo/addons/stock_move_location/i18n/ja_JP.po,sha256=B1EN_vEiSVrNqbwdOTWYZzoG5qYS-otAeeJIw_FeN1k,10141
|
14
14
|
odoo/addons/stock_move_location/i18n/pt.po,sha256=nDAjA6dW-AHS626GH92MOZMoW91VNRU7HC3frCwQBJo,10704
|
15
|
-
odoo/addons/stock_move_location/i18n/stock_move_location.pot,sha256=
|
15
|
+
odoo/addons/stock_move_location/i18n/stock_move_location.pot,sha256=iGhgMOAPhzmrqWGb2C7sHif2US073Vp25fCUzWr_7DU,9965
|
16
16
|
odoo/addons/stock_move_location/models/__init__.py,sha256=UrroaZ7L0mQgueiSi7qJ-maQp61uMedod-xbfhGNBMI,181
|
17
17
|
odoo/addons/stock_move_location/models/stock_move.py,sha256=UxsvfgwL_bfAEDrMdu_HGLlabPyZCjnf4MfeFzNPPI0,604
|
18
18
|
odoo/addons/stock_move_location/models/stock_picking.py,sha256=zaUHgEKdL9SjbkhiMwbkptKc3JzqXjeA-djbMjJ2KWc,1662
|
19
19
|
odoo/addons/stock_move_location/models/stock_picking_type.py,sha256=9czGhJxYbgoB9umbf3Vw2TuyGWDC_cBXhaDq_cSN0t0,962
|
20
|
-
odoo/addons/stock_move_location/readme/CONTRIBUTORS.md,sha256=
|
20
|
+
odoo/addons/stock_move_location/readme/CONTRIBUTORS.md,sha256=jdLKIMJmyc-wsmVXUXjkcxlGwFGlfzXSt5wC_qrRcOY,657
|
21
21
|
odoo/addons/stock_move_location/readme/DESCRIPTION.md,sha256=cVmKIDWpKU3Ep66adAVRrNkMQB-yeJ-8QTRayNHTX1M,116
|
22
22
|
odoo/addons/stock_move_location/readme/ROADMAP.md,sha256=HW9tNWBGh6oAjRj8qWMlXPc0XQu7325gRxcs9jeR4ZM,487
|
23
|
-
odoo/addons/stock_move_location/readme/USAGE.md,sha256=
|
23
|
+
odoo/addons/stock_move_location/readme/USAGE.md,sha256=FmTEwq9m_kuygbtWl4syvjA8ieqNAksH8Vol5Mtqyqg,2060
|
24
24
|
odoo/addons/stock_move_location/security/ir.model.access.csv,sha256=sLpkI9b3t8YdWBbYPjzlQrCbmv-_C0bUwzd10cMF14M,338
|
25
25
|
odoo/addons/stock_move_location/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
26
|
-
odoo/addons/stock_move_location/static/description/index.html,sha256=
|
26
|
+
odoo/addons/stock_move_location/static/description/index.html,sha256=1P3c-WOXybwDIIl5S6yEUuRaGB2_Rx0I3ayf0aeWmB4,17284
|
27
27
|
odoo/addons/stock_move_location/tests/__init__.py,sha256=gDGhCnhTYQONkRkGhPtOhgWTJ8sj6zs-sl2YRRvqGvQ,98
|
28
|
-
odoo/addons/stock_move_location/tests/test_common.py,sha256=
|
29
|
-
odoo/addons/stock_move_location/tests/test_move_location.py,sha256=
|
28
|
+
odoo/addons/stock_move_location/tests/test_common.py,sha256=c7N7wfMZ-lTtLzINgdDggJDmAlt7GT01pmzhnpfE0LM,6113
|
29
|
+
odoo/addons/stock_move_location/tests/test_move_location.py,sha256=OJFkAHjtEFduV7Ka3in07TTJsQfK5QFjnBZKPMJuEgY,15036
|
30
30
|
odoo/addons/stock_move_location/tests/test_stock_fillwithstock.py,sha256=BvMF_7nubCdd_o337qjQxJMdZ3WzGd8--DyDkkv6c-g,2838
|
31
31
|
odoo/addons/stock_move_location/views/stock_picking.xml,sha256=isH25PIq7A2rfCUzk9_HFYA8WIoGm5HNDu-N3CJazRQ,730
|
32
|
-
odoo/addons/stock_move_location/views/stock_picking_type_views.xml,sha256=
|
32
|
+
odoo/addons/stock_move_location/views/stock_picking_type_views.xml,sha256=2eDNXl4eg9WRcyoMHEf3OKBy5-rZJue3reSXWCDNxbI,1495
|
33
33
|
odoo/addons/stock_move_location/wizard/__init__.py,sha256=0YXi68VJIkwZDO1-ZFirM2ANY3Mi7PEPdYW0Gg46lmY,239
|
34
|
-
odoo/addons/stock_move_location/wizard/stock_move_location.py,sha256=
|
35
|
-
odoo/addons/stock_move_location/wizard/stock_move_location.xml,sha256=
|
34
|
+
odoo/addons/stock_move_location/wizard/stock_move_location.py,sha256=iGdx_9E9eGl-hfizNYb9JyoBYlNRm3rgNp22o6ua7aw,15362
|
35
|
+
odoo/addons/stock_move_location/wizard/stock_move_location.xml,sha256=cYLFIvZ7VDUGOHqbG31mcqrj6Ec_jS2sAgk8MHrsAYQ,7834
|
36
36
|
odoo/addons/stock_move_location/wizard/stock_move_location_line.py,sha256=7ORteDfC0RzWBEYuzlr6yn7_XN__VdyfJ31OkJ_mIwM,6323
|
37
|
-
odoo_addon_stock_move_location-16.0.1.
|
38
|
-
odoo_addon_stock_move_location-16.0.1.
|
39
|
-
odoo_addon_stock_move_location-16.0.1.
|
40
|
-
odoo_addon_stock_move_location-16.0.1.
|
37
|
+
odoo_addon_stock_move_location-16.0.1.4.0.dist-info/METADATA,sha256=1-aeViZg1UV84vY7tLdX8yjrX2uzcS34YGeS9KqZxic,6950
|
38
|
+
odoo_addon_stock_move_location-16.0.1.4.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
39
|
+
odoo_addon_stock_move_location-16.0.1.4.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
40
|
+
odoo_addon_stock_move_location-16.0.1.4.0.dist-info/RECORD,,
|
File without changes
|