odoo-addon-shopfloor 16.0.2.12.0.1__py3-none-any.whl → 18.0.0.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.
- odoo/addons/shopfloor/README.rst +79 -52
- odoo/addons/shopfloor/__manifest__.py +11 -4
- odoo/addons/shopfloor/actions/__init__.py +0 -1
- odoo/addons/shopfloor/actions/change_package_lot.py +4 -6
- odoo/addons/shopfloor/actions/data.py +7 -6
- odoo/addons/shopfloor/actions/inventory.py +1 -1
- odoo/addons/shopfloor/actions/message.py +1 -1
- odoo/addons/shopfloor/actions/move_line_search.py +1 -1
- odoo/addons/shopfloor/actions/search.py +8 -32
- odoo/addons/shopfloor/actions/stock.py +8 -7
- odoo/addons/shopfloor/i18n/ca.po +0 -5
- odoo/addons/shopfloor/i18n/de.po +0 -5
- odoo/addons/shopfloor/i18n/es_AR.po +0 -5
- odoo/addons/shopfloor/i18n/it.po +2 -8
- odoo/addons/shopfloor/i18n/pt_BR.po +0 -5
- odoo/addons/shopfloor/i18n/shopfloor.pot +7 -194
- odoo/addons/shopfloor/models/stock_location.py +5 -5
- odoo/addons/shopfloor/models/stock_move.py +24 -7
- odoo/addons/shopfloor/models/stock_move_line.py +29 -82
- odoo/addons/shopfloor/models/stock_picking.py +8 -6
- odoo/addons/shopfloor/models/stock_quant_package.py +2 -2
- odoo/addons/shopfloor/readme/CONTRIBUTORS.md +17 -0
- odoo/addons/shopfloor/readme/CREDITS.md +5 -0
- odoo/addons/shopfloor/readme/DESCRIPTION.md +37 -0
- odoo/addons/shopfloor/readme/{HISTORY.rst → HISTORY.md} +1 -2
- odoo/addons/shopfloor/readme/ROADMAP.md +10 -0
- odoo/addons/shopfloor/readme/USAGE.md +6 -0
- odoo/addons/shopfloor/services/checkout.py +9 -9
- odoo/addons/shopfloor/services/cluster_picking.py +2 -2
- odoo/addons/shopfloor/services/delivery.py +4 -6
- odoo/addons/shopfloor/services/forms/picking_form.py +4 -1
- odoo/addons/shopfloor/services/location_content_transfer.py +1 -1
- odoo/addons/shopfloor/services/single_pack_transfer.py +1 -1
- odoo/addons/shopfloor/services/zone_picking.py +5 -9
- odoo/addons/shopfloor/static/description/index.html +41 -18
- odoo/addons/shopfloor/tests/__init__.py +74 -73
- odoo/addons/shopfloor/tests/common.py +9 -9
- odoo/addons/shopfloor/tests/test_actions_change_package_lot.py +104 -71
- odoo/addons/shopfloor/tests/test_actions_data.py +17 -21
- odoo/addons/shopfloor/tests/test_actions_data_base.py +9 -3
- odoo/addons/shopfloor/tests/test_actions_data_detail.py +17 -19
- odoo/addons/shopfloor/tests/test_actions_search.py +2 -1
- odoo/addons/shopfloor/tests/test_actions_stock.py +4 -1
- odoo/addons/shopfloor/tests/test_checkout_auto_post.py +3 -3
- odoo/addons/shopfloor/tests/test_checkout_base.py +1 -1
- odoo/addons/shopfloor/tests/test_checkout_list_delivery_packaging.py +1 -1
- odoo/addons/shopfloor/tests/test_checkout_list_package.py +4 -4
- odoo/addons/shopfloor/tests/test_checkout_new_package.py +3 -3
- odoo/addons/shopfloor/tests/test_checkout_no_package.py +3 -3
- odoo/addons/shopfloor/tests/test_checkout_scan_dest_location.py +1 -1
- odoo/addons/shopfloor/tests/test_checkout_scan_package_action.py +11 -11
- odoo/addons/shopfloor/tests/test_checkout_select_package_base.py +1 -1
- odoo/addons/shopfloor/tests/test_checkout_set_qty.py +17 -17
- odoo/addons/shopfloor/tests/test_checkout_summary.py +2 -2
- odoo/addons/shopfloor/tests/test_cluster_picking_base.py +1 -1
- odoo/addons/shopfloor/tests/test_cluster_picking_batch.py +2 -2
- odoo/addons/shopfloor/tests/test_cluster_picking_change_pack_lot.py +1 -1
- odoo/addons/shopfloor/tests/test_cluster_picking_is_zero.py +1 -1
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination.py +17 -19
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_no_prefill_qty.py +1 -1
- odoo/addons/shopfloor/tests/test_cluster_picking_stock_issue.py +5 -5
- odoo/addons/shopfloor/tests/test_delivery_base.py +4 -6
- odoo/addons/shopfloor/tests/test_delivery_done.py +1 -1
- odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_line.py +1 -1
- odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_pack.py +1 -1
- odoo/addons/shopfloor/tests/test_delivery_scan_deliver.py +6 -6
- odoo/addons/shopfloor/tests/test_location_content_transfer_base.py +2 -2
- odoo/addons/shopfloor/tests/test_location_content_transfer_mix.py +8 -8
- odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_package_or_line.py +41 -41
- odoo/addons/shopfloor/tests/test_location_content_transfer_single.py +3 -3
- odoo/addons/shopfloor/tests/test_menu_base.py +4 -4
- odoo/addons/shopfloor/tests/test_move_action_assign.py +19 -4
- odoo/addons/shopfloor/tests/test_single_pack_transfer.py +3 -3
- odoo/addons/shopfloor/tests/test_stock_split.py +77 -17
- odoo/addons/shopfloor/tests/test_zone_picking_base.py +5 -5
- odoo/addons/shopfloor/tests/test_zone_picking_change_pack_lot.py +2 -2
- odoo/addons/shopfloor/tests/test_zone_picking_complete_mix_pack_flux.py +2 -2
- odoo/addons/shopfloor/tests/test_zone_picking_require_destination_package.py +3 -3
- odoo/addons/shopfloor/tests/test_zone_picking_select_line.py +4 -4
- odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination.py +29 -29
- odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination_package_not_allowed.py +2 -2
- odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination_pick_pack.py +12 -12
- odoo/addons/shopfloor/tests/test_zone_picking_start.py +1 -1
- odoo/addons/shopfloor/tests/test_zone_picking_unload_all.py +12 -12
- odoo/addons/shopfloor/tests/test_zone_picking_unload_buffer_lines.py +4 -4
- odoo/addons/shopfloor/tests/test_zone_picking_unload_set_destination.py +10 -10
- odoo/addons/shopfloor/tests/test_zone_picking_unload_single.py +3 -3
- odoo/addons/shopfloor/views/shopfloor_menu.xml +33 -102
- odoo/addons/shopfloor/views/stock_move_line.xml +2 -2
- odoo/addons/shopfloor/views/stock_picking_type.xml +1 -1
- odoo_addon_shopfloor-18.0.0.1.1.dist-info/METADATA +222 -0
- {odoo_addon_shopfloor-16.0.2.12.0.1.dist-info → odoo_addon_shopfloor-18.0.0.1.1.dist-info}/RECORD +94 -98
- {odoo_addon_shopfloor-16.0.2.12.0.1.dist-info → odoo_addon_shopfloor-18.0.0.1.1.dist-info}/WHEEL +1 -1
- odoo_addon_shopfloor-18.0.0.1.1.dist-info/top_level.txt +1 -0
- odoo/addons/shopfloor/actions/barcode_parser.py +0 -44
- odoo/addons/shopfloor/migrations/16.0.2.0.0/post-migration.py +0 -41
- odoo/addons/shopfloor/migrations/16.0.2.4.2/post-init_search_move_line_options.py +0 -33
- odoo/addons/shopfloor/migrations/16.0.2.4.2/post-migration.py +0 -29
- odoo/addons/shopfloor/readme/CONTRIBUTORS.rst +0 -18
- odoo/addons/shopfloor/readme/CREDITS.rst +0 -5
- odoo/addons/shopfloor/readme/DESCRIPTION.rst +0 -17
- odoo/addons/shopfloor/readme/ROADMAP.rst +0 -4
- odoo/addons/shopfloor/readme/USAGE.rst +0 -6
- odoo_addon_shopfloor-16.0.2.12.0.1.dist-info/METADATA +0 -193
- odoo_addon_shopfloor-16.0.2.12.0.1.dist-info/top_level.txt +0 -1
@@ -21,7 +21,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
21
21
|
.create(
|
22
22
|
{
|
23
23
|
"name": "Product Z",
|
24
|
-
"
|
24
|
+
"is_storable": True,
|
25
25
|
"default_code": "Z",
|
26
26
|
"barcode": "Z",
|
27
27
|
"weight": 7,
|
@@ -58,7 +58,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
58
58
|
# set the destination package
|
59
59
|
self.service._set_destination_package(
|
60
60
|
move_line,
|
61
|
-
move_line.
|
61
|
+
move_line.quantity,
|
62
62
|
self.free_package,
|
63
63
|
)
|
64
64
|
response = self.service.dispatch(
|
@@ -80,7 +80,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
80
80
|
# set the destination package
|
81
81
|
self.service._set_destination_package(
|
82
82
|
move_line,
|
83
|
-
move_line.
|
83
|
+
move_line.quantity,
|
84
84
|
self.free_package,
|
85
85
|
)
|
86
86
|
response = self.service.dispatch(
|
@@ -107,7 +107,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
107
107
|
# set the destination package
|
108
108
|
self.service._set_destination_package(
|
109
109
|
move_line,
|
110
|
-
move_line.
|
110
|
+
move_line.quantity,
|
111
111
|
self.free_package,
|
112
112
|
)
|
113
113
|
response = self.service.dispatch(
|
@@ -155,7 +155,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
155
155
|
# set the destination package
|
156
156
|
self.service._set_destination_package(
|
157
157
|
move_line,
|
158
|
-
move_line.
|
158
|
+
move_line.quantity,
|
159
159
|
self.free_package,
|
160
160
|
)
|
161
161
|
move_line.location_dest_id = packing_sublocation1
|
@@ -202,7 +202,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
202
202
|
# set the destination package
|
203
203
|
self.service._set_destination_package(
|
204
204
|
move_line,
|
205
|
-
move_line.
|
205
|
+
move_line.quantity,
|
206
206
|
self.free_package,
|
207
207
|
)
|
208
208
|
move_line.location_dest_id = packing_sublocation1
|
@@ -242,7 +242,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
242
242
|
# set the destination package
|
243
243
|
self.service._set_destination_package(
|
244
244
|
move_line,
|
245
|
-
move_line.
|
245
|
+
move_line.quantity,
|
246
246
|
self.free_package,
|
247
247
|
)
|
248
248
|
response = self.service.dispatch(
|
@@ -279,7 +279,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
279
279
|
):
|
280
280
|
self.service._set_destination_package(
|
281
281
|
move_line,
|
282
|
-
move_line.
|
282
|
+
move_line.quantity,
|
283
283
|
package_dest,
|
284
284
|
)
|
285
285
|
free_package_line = move_lines.filtered(
|
@@ -323,7 +323,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
323
323
|
self.assertEqual(self.picking_z.move_ids[0].product_uom_qty, 40)
|
324
324
|
self.picking_z.action_assign()
|
325
325
|
move_line = self.picking_z.move_line_ids
|
326
|
-
self.assertEqual(move_line.
|
326
|
+
self.assertEqual(move_line.quantity, 32)
|
327
327
|
self.assertEqual(move_line.move_id.state, "partially_available")
|
328
328
|
packing_sublocation = (
|
329
329
|
self.env["stock.location"]
|
@@ -339,7 +339,7 @@ class ZonePickingUnloadSetDestinationCase(ZonePickingCommonCase):
|
|
339
339
|
# set the destination package
|
340
340
|
self.service._set_destination_package(
|
341
341
|
move_line,
|
342
|
-
move_line.
|
342
|
+
move_line.quantity,
|
343
343
|
self.free_package,
|
344
344
|
)
|
345
345
|
response = self.service.dispatch(
|
@@ -24,7 +24,7 @@ class ZonePickingUnloadSingleCase(ZonePickingCommonCase):
|
|
24
24
|
# => get back on 'unload_single' screen
|
25
25
|
self.service._set_destination_package(
|
26
26
|
move_line,
|
27
|
-
move_line.
|
27
|
+
move_line.quantity,
|
28
28
|
self.free_package,
|
29
29
|
)
|
30
30
|
response = self.service.dispatch(
|
@@ -77,7 +77,7 @@ class ZonePickingUnloadSingleCase(ZonePickingCommonCase):
|
|
77
77
|
# set the destination package
|
78
78
|
self.service._set_destination_package(
|
79
79
|
move_line,
|
80
|
-
move_line.
|
80
|
+
move_line.quantity,
|
81
81
|
self.free_package,
|
82
82
|
)
|
83
83
|
response = self.service.dispatch(
|
@@ -104,7 +104,7 @@ class ZonePickingUnloadSingleCase(ZonePickingCommonCase):
|
|
104
104
|
# set the destination package
|
105
105
|
self.service._set_destination_package(
|
106
106
|
move_line,
|
107
|
-
move_line.
|
107
|
+
move_line.quantity,
|
108
108
|
self.free_package,
|
109
109
|
)
|
110
110
|
response = self.service.dispatch(
|
@@ -12,205 +12,136 @@
|
|
12
12
|
/>
|
13
13
|
</field>
|
14
14
|
<group name="options" position="inside">
|
15
|
-
<group
|
16
|
-
name="move_create"
|
17
|
-
attrs="{'invisible': [('move_create_is_possible', '=', False)]}"
|
18
|
-
>
|
19
|
-
<field name="move_create_is_possible" invisible="1" />
|
15
|
+
<group name="move_create" invisible="not move_create_is_possible">
|
20
16
|
<field name="allow_move_create" />
|
21
17
|
</group>
|
22
18
|
<group
|
23
19
|
name="unreserve_other_moves"
|
24
|
-
|
20
|
+
invisible="not unreserve_other_moves_is_possible"
|
25
21
|
>
|
26
|
-
<field name="unreserve_other_moves_is_possible" invisible="1" />
|
27
22
|
<field name="allow_unreserve_other_moves" />
|
28
23
|
</group>
|
29
24
|
<group
|
30
25
|
name="ignore_no_putaway_available"
|
31
|
-
|
26
|
+
invisible="not ignore_no_putaway_available_is_possible"
|
32
27
|
>
|
33
|
-
<field
|
34
|
-
name="ignore_no_putaway_available_is_possible"
|
35
|
-
invisible="1"
|
36
|
-
/>
|
37
28
|
<field name="ignore_no_putaway_available" />
|
38
29
|
</group>
|
39
30
|
<group
|
40
31
|
name="require_destination_package"
|
41
|
-
|
32
|
+
invisible="not require_destination_package_is_possible"
|
42
33
|
>
|
43
|
-
<field
|
44
|
-
name="require_destination_package_is_possible"
|
45
|
-
invisible="1"
|
46
|
-
/>
|
47
34
|
<field name="require_destination_package" />
|
48
35
|
</group>
|
49
36
|
<group
|
50
37
|
name="pick_pack_same_time"
|
51
|
-
|
38
|
+
invisible="not pick_pack_same_time_is_possible"
|
52
39
|
>
|
53
|
-
<field name="pick_pack_same_time_is_possible" invisible="1" />
|
54
40
|
<field name="pick_pack_same_time" />
|
55
41
|
</group>
|
56
42
|
<group
|
57
43
|
name="force_reservation"
|
58
|
-
|
44
|
+
invisible="not allow_force_reservation_is_possible"
|
59
45
|
>
|
60
|
-
<field name="allow_force_reservation_is_possible" invisible="1" />
|
61
46
|
<field name="allow_force_reservation" />
|
62
47
|
</group>
|
63
48
|
<group
|
64
49
|
name="prepackaged_product"
|
65
|
-
|
50
|
+
invisible="not prepackaged_product_is_possible"
|
66
51
|
>
|
67
|
-
<field name="prepackaged_product_is_possible" invisible="1" />
|
68
52
|
<field name="allow_prepackaged_product" />
|
69
53
|
</group>
|
70
54
|
<group
|
71
55
|
name="unload_at_destination"
|
72
|
-
|
56
|
+
invisible="not unload_package_at_destination_is_possible"
|
73
57
|
>
|
74
|
-
<field
|
75
|
-
name="unload_package_at_destination_is_possible"
|
76
|
-
invisible="1"
|
77
|
-
/>
|
78
58
|
<field
|
79
59
|
name="unload_package_at_destination"
|
80
|
-
|
60
|
+
readonly="pick_pack_same_time"
|
81
61
|
/>
|
82
62
|
</group>
|
83
63
|
<group
|
84
64
|
name="disable_full_bin_action"
|
85
|
-
|
65
|
+
invisible="not disable_full_bin_action_is_possible"
|
86
66
|
>
|
87
|
-
<field name="disable_full_bin_action_is_possible" invisible="1" />
|
88
67
|
<field name="disable_full_bin_action" />
|
89
68
|
</group>
|
90
69
|
<group
|
91
70
|
name="multiple_move_single_pack"
|
92
|
-
|
71
|
+
invisible="not multiple_move_single_pack_is_possible"
|
93
72
|
>
|
94
|
-
<field name="multiple_move_single_pack_is_possible" invisible="1" />
|
95
73
|
<field
|
96
74
|
name="multiple_move_single_pack"
|
97
|
-
|
75
|
+
readonly="pick_pack_same_time"
|
98
76
|
/>
|
99
77
|
</group>
|
100
|
-
<group
|
101
|
-
name="get_work"
|
102
|
-
attrs="{'invisible': [('allow_get_work_is_possible', '=', False)]}"
|
103
|
-
>
|
104
|
-
<field name="allow_get_work_is_possible" invisible="1" />
|
78
|
+
<group name="get_work" invisible="not allow_get_work_is_possible">
|
105
79
|
<field name="allow_get_work" />
|
106
80
|
</group>
|
107
|
-
<group
|
108
|
-
name="no_prefill_qty"
|
109
|
-
attrs="{'invisible': [('no_prefill_qty_is_possible', '=', False)]}"
|
110
|
-
>
|
111
|
-
<field name="no_prefill_qty_is_possible" invisible="1" />
|
81
|
+
<group name="no_prefill_qty" invisible="not no_prefill_qty_is_possible">
|
112
82
|
<field name="no_prefill_qty" />
|
113
83
|
</group>
|
114
84
|
<group
|
115
85
|
name="show_oneline_package_content"
|
116
|
-
|
86
|
+
invisible="not show_oneline_package_content_is_possible"
|
117
87
|
>
|
118
|
-
<field
|
119
|
-
name="show_oneline_package_content_is_possible"
|
120
|
-
invisible="1"
|
121
|
-
/>
|
122
88
|
<field name="show_oneline_package_content" />
|
123
89
|
</group>
|
124
90
|
<group
|
125
91
|
name="scan_location_or_pack_first"
|
126
|
-
|
92
|
+
invisible="not scan_location_or_pack_first_is_possible"
|
127
93
|
>
|
128
|
-
<field name="scenario_key" invisible="1" />
|
129
|
-
<field
|
130
|
-
name="scan_location_or_pack_first_is_possible"
|
131
|
-
invisible="1"
|
132
|
-
/>
|
133
94
|
<field name="scan_location_or_pack_first" />
|
134
|
-
<div
|
135
|
-
class="text-muted"
|
136
|
-
attrs="{'invisible': [('scenario_key', '!=', 'checkout')]}"
|
137
|
-
>
|
95
|
+
<div class="text-muted" invisible="scenario_key != 'checkout'">
|
138
96
|
When choosing an order to pack, do not allow to scan a product.
|
139
97
|
</div>
|
140
|
-
<div
|
141
|
-
class="text-muted"
|
142
|
-
attrs="{'invisible': [('scenario_key', '!=', 'zone_picking')]}"
|
143
|
-
>
|
98
|
+
<div class="text-muted" invisible="scenario_key != 'zone_picking'">
|
144
99
|
When selecting a move line, force the user to first scan a package or a location and not a product or a lot.
|
145
100
|
</div>
|
146
101
|
<div
|
147
102
|
class="text-muted"
|
148
|
-
|
103
|
+
invisible="scenario_key != 'cluster_picking'"
|
149
104
|
>
|
150
105
|
When selecting a move line, force the user to first scan a package or a location and not a product or a lot.
|
151
106
|
</div>
|
152
107
|
</group>
|
153
|
-
<group
|
154
|
-
name="auto_post_line"
|
155
|
-
attrs="{'invisible': [('auto_post_line_is_possible', '=', False)]}"
|
156
|
-
>
|
157
|
-
<field name="auto_post_line_is_possible" invisible="1" />
|
108
|
+
<group name="auto_post_line" invisible="not auto_post_line_is_possible">
|
158
109
|
<field name="auto_post_line" />
|
159
110
|
</group>
|
160
111
|
<group
|
161
112
|
name="allow_alternative_destination"
|
162
|
-
|
113
|
+
invisible="not allow_alternative_destination_is_possible"
|
163
114
|
>
|
164
|
-
<field
|
165
|
-
name="allow_alternative_destination_is_possible"
|
166
|
-
invisible="1"
|
167
|
-
/>
|
168
115
|
<field name="allow_alternative_destination" />
|
169
116
|
</group>
|
170
|
-
<group
|
171
|
-
name="allow_return"
|
172
|
-
attrs="{'invisible': [('allow_return_is_possible', '=', False)]}"
|
173
|
-
>
|
174
|
-
<field name="allow_return_is_possible" invisible="1" />
|
117
|
+
<group name="allow_return" invisible="not allow_return_is_possible">
|
175
118
|
<field name="allow_return" />
|
176
119
|
</group>
|
177
120
|
<group
|
178
121
|
name="allow_alternative_destination_package"
|
179
|
-
|
122
|
+
invisible="not allow_alternative_destination_package_is_possible"
|
180
123
|
>
|
181
|
-
<field
|
182
|
-
name="allow_alternative_destination_package_is_possible"
|
183
|
-
invisible="1"
|
184
|
-
/>
|
185
124
|
<field name="allow_alternative_destination_package" />
|
186
125
|
</group>
|
187
126
|
<group
|
188
127
|
name="search_move_line"
|
189
|
-
|
128
|
+
invisible="not move_line_search_sort_order_is_possible and not move_line_search_additional_domain_is_possible"
|
190
129
|
>
|
191
|
-
<field
|
192
|
-
name="move_line_search_additional_domain_is_possible"
|
193
|
-
invisible="1"
|
194
|
-
/>
|
195
130
|
<field
|
196
131
|
name="move_line_search_additional_domain"
|
197
132
|
widget="domain"
|
198
133
|
options="{'model': 'stock.move.line'}"
|
199
|
-
|
200
|
-
/>
|
201
|
-
<field
|
202
|
-
name="move_line_search_sort_order_is_possible"
|
203
|
-
invisible="1"
|
134
|
+
invisible="not move_line_search_additional_domain_is_possible"
|
204
135
|
/>
|
205
136
|
<field
|
206
137
|
name="move_line_search_sort_order"
|
207
|
-
|
138
|
+
invisible="not move_line_search_sort_order_is_possible"
|
208
139
|
/>
|
209
140
|
<div
|
210
141
|
class="o_cell o_wrap_label"
|
211
142
|
style="margin-top: 4px;"
|
212
143
|
colspan="2"
|
213
|
-
|
144
|
+
invisible="not move_line_search_sort_order_is_possible or move_line_search_sort_order != 'custom_code'"
|
214
145
|
>
|
215
146
|
<label
|
216
147
|
class="text-900"
|
@@ -219,23 +150,23 @@
|
|
219
150
|
<p>Three variables are available:</p>
|
220
151
|
<ul>
|
221
152
|
<li><code
|
222
|
-
|
153
|
+
>line</code>: The move line for with the key must be computed.
|
223
154
|
</li>
|
224
155
|
<li><code
|
225
|
-
|
156
|
+
>get_sort_key_priority</code>: Return sort key to sort by priority. (return a tuple)
|
226
157
|
</li>
|
227
158
|
<li><code
|
228
|
-
|
159
|
+
>get_sort_key_location</code>: Return sort key to sort by location. (return a tuple)
|
229
160
|
</li>
|
230
161
|
<li><code
|
231
|
-
|
162
|
+
>get_sort_key_assigned_to_current_user</code>: Return sort key to get line assigned to current user first. (return a tuple)
|
232
163
|
</li>
|
233
164
|
<li>To assign the key value: <code
|
234
|
-
|
165
|
+
>key = get_sort_key_assigned_to_current_user(line) + (line.x, )</code></li>
|
235
166
|
</ul>
|
236
167
|
<field
|
237
168
|
name="move_line_search_sort_order_custom_code"
|
238
|
-
|
169
|
+
invisible="not move_line_search_sort_order_is_possible or move_line_search_sort_order != 'custom_code'"
|
239
170
|
nolabel="1"
|
240
171
|
/>
|
241
172
|
</div>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
ref="stock.view_stock_move_line_detailed_operation_tree"
|
9
9
|
/>
|
10
10
|
<field name="arch" type="xml">
|
11
|
-
<field name="
|
11
|
+
<field name="product_uom_id" position="after">
|
12
12
|
<!-- handy for testing / debugging -->
|
13
13
|
<!-- TODO: make them readonly? -->
|
14
14
|
<field
|
@@ -44,7 +44,7 @@
|
|
44
44
|
<field name="model">stock.move.line</field>
|
45
45
|
<field name="inherit_id" ref="stock.view_stock_move_line_operation_tree" />
|
46
46
|
<field name="arch" type="xml">
|
47
|
-
<field name="
|
47
|
+
<field name="product_uom_id" position="after">
|
48
48
|
<field name="shopfloor_user_id" />
|
49
49
|
</field>
|
50
50
|
</field>
|
@@ -0,0 +1,222 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: odoo-addon-shopfloor
|
3
|
+
Version: 18.0.0.1.1
|
4
|
+
Requires-Python: >=3.10
|
5
|
+
Requires-Dist: odoo-addon-base_rest==18.0.*
|
6
|
+
Requires-Dist: odoo-addon-jsonifier==18.0.*
|
7
|
+
Requires-Dist: odoo-addon-product_manufacturer==18.0.*
|
8
|
+
Requires-Dist: odoo-addon-product_packaging_level==18.0.*
|
9
|
+
Requires-Dist: odoo-addon-shopfloor_base==18.0.*
|
10
|
+
Requires-Dist: odoo-addon-stock_location_is_sublocation==18.0.*
|
11
|
+
Requires-Dist: odoo-addon-stock_move_line_change_lot==18.0.*
|
12
|
+
Requires-Dist: odoo-addon-stock_move_line_qty_picked==18.0.*
|
13
|
+
Requires-Dist: odoo-addon-stock_picking_completion_info==18.0.*
|
14
|
+
Requires-Dist: odoo-addon-stock_picking_delivery_link==18.0.*
|
15
|
+
Requires-Dist: odoo-addon-stock_picking_progress==18.0.*
|
16
|
+
Requires-Dist: odoo-addon-stock_quant_package_dimension==18.0.*
|
17
|
+
Requires-Dist: odoo-addon-stock_quant_package_product_packaging==18.0.*
|
18
|
+
Requires-Dist: odoo-addon-stock_storage_type==18.0.*
|
19
|
+
Requires-Dist: odoo==18.0.*
|
20
|
+
Summary: manage warehouse operations with barcode scanners
|
21
|
+
Home-page: https://github.com/OCA/stock-logistics-shopfloor
|
22
|
+
License: AGPL-3
|
23
|
+
Author: Camptocamp, BCIM, Akretion, Odoo Community Association (OCA)
|
24
|
+
Author-email: support@odoo-community.org
|
25
|
+
Classifier: Programming Language :: Python
|
26
|
+
Classifier: Framework :: Odoo
|
27
|
+
Classifier: Framework :: Odoo :: 18.0
|
28
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
29
|
+
Classifier: Development Status :: 4 - Beta
|
30
|
+
Description-Content-Type: text/x-rst
|
31
|
+
|
32
|
+
.. image:: https://odoo-community.org/readme-banner-image
|
33
|
+
:target: https://odoo-community.org/get-involved?utm_source=readme
|
34
|
+
:alt: Odoo Community Association
|
35
|
+
|
36
|
+
=========
|
37
|
+
Shopfloor
|
38
|
+
=========
|
39
|
+
|
40
|
+
..
|
41
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
42
|
+
!! This file is generated by oca-gen-addon-readme !!
|
43
|
+
!! changes will be overwritten. !!
|
44
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
45
|
+
!! source digest: sha256:739657eee1fdf9678a26382abddbac38fe12b94108c24fc7367b427639a5c8b9
|
46
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
47
|
+
|
48
|
+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
49
|
+
:target: https://odoo-community.org/page/development-status
|
50
|
+
:alt: Beta
|
51
|
+
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
|
52
|
+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
53
|
+
:alt: License: AGPL-3
|
54
|
+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--shopfloor-lightgray.png?logo=github
|
55
|
+
:target: https://github.com/OCA/stock-logistics-shopfloor/tree/18.0/shopfloor
|
56
|
+
:alt: OCA/stock-logistics-shopfloor
|
57
|
+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
58
|
+
:target: https://translation.odoo-community.org/projects/stock-logistics-shopfloor-18-0/stock-logistics-shopfloor-18-0-shopfloor
|
59
|
+
:alt: Translate me on Weblate
|
60
|
+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
61
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-shopfloor&target_branch=18.0
|
62
|
+
:alt: Try me on Runboat
|
63
|
+
|
64
|
+
|badge1| |badge2| |badge3| |badge4| |badge5|
|
65
|
+
|
66
|
+
Shopfloor is a barcode scanner application for internal warehouse
|
67
|
+
operations.
|
68
|
+
|
69
|
+
The application supports scenarios, to relate to Operation Types:
|
70
|
+
|
71
|
+
- Cluster Picking
|
72
|
+
- Zone Picking
|
73
|
+
- Checkout/Packing
|
74
|
+
- Delivery
|
75
|
+
- Location Content Transfer
|
76
|
+
- Single Pack Transfer
|
77
|
+
|
78
|
+
This module provides REST APIs to support the scenarios. It needs a
|
79
|
+
frontend to consume the backend APIs and provide screens for users on
|
80
|
+
barcode devices. A default front-end application is provided by
|
81
|
+
``shopfloor_mobile``.
|
82
|
+
|
83
|
+
| Note: if you want to enable a new scenario on an existing application,
|
84
|
+
you must trigger the registry sync on the shopfloor.app in a
|
85
|
+
post_init_hook or a post-migrate script.
|
86
|
+
| See an example
|
87
|
+
`here <https://github.com/OCA/wms/pull/520/commits/bccdfd445a9bc943998c4848f183a076e8459a98>`__.
|
88
|
+
|
89
|
+
**WARNING v18**
|
90
|
+
|
91
|
+
Scenario will be migrated one by one.
|
92
|
+
|
93
|
+
Current availability status:
|
94
|
+
|
95
|
+
- ☐ checkout
|
96
|
+
- ☐ cluster picking
|
97
|
+
- ☐ zone picking
|
98
|
+
- ☐ delivery
|
99
|
+
- ☐ location content transfer
|
100
|
+
- ☐ single pack transfer (to be discarded in favor of
|
101
|
+
shopfloor_single_product_transfer)
|
102
|
+
- ☐ zone picking
|
103
|
+
|
104
|
+
**Table of contents**
|
105
|
+
|
106
|
+
.. contents::
|
107
|
+
:local:
|
108
|
+
|
109
|
+
Usage
|
110
|
+
=====
|
111
|
+
|
112
|
+
An API key is created in the Demo data (for development), using the Demo
|
113
|
+
user. The key to use in the HTTP header ``API-KEY`` is: 72B044F7AC780DAC
|
114
|
+
|
115
|
+
Curl example:
|
116
|
+
|
117
|
+
::
|
118
|
+
|
119
|
+
curl -X POST "http://localhost:8069/shopfloor/user/menu" -H "accept: */*" -H "Content-Type: application/json" -H "API-KEY: 72B044F7AC780DAC"
|
120
|
+
|
121
|
+
Known issues / Roadmap
|
122
|
+
======================
|
123
|
+
|
124
|
+
- improve documentation
|
125
|
+
- split out scenario components to their own modules
|
126
|
+
- maybe split common stock features to shopfloor_stock_base and move
|
127
|
+
scenario to shopfloor_wms?
|
128
|
+
|
129
|
+
**WARNING v18**
|
130
|
+
|
131
|
+
We don't want to split now the scenario to keep it as much as possible
|
132
|
+
in line w/ v16. We'll do it later.
|
133
|
+
|
134
|
+
Changelog
|
135
|
+
=========
|
136
|
+
|
137
|
+
13.0.1.0.0
|
138
|
+
----------
|
139
|
+
|
140
|
+
First official version.
|
141
|
+
|
142
|
+
Bug Tracker
|
143
|
+
===========
|
144
|
+
|
145
|
+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-shopfloor/issues>`_.
|
146
|
+
In case of trouble, please check there if your issue has already been reported.
|
147
|
+
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
148
|
+
`feedback <https://github.com/OCA/stock-logistics-shopfloor/issues/new?body=module:%20shopfloor%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
149
|
+
|
150
|
+
Do not contact contributors directly about support or help with technical issues.
|
151
|
+
|
152
|
+
Credits
|
153
|
+
=======
|
154
|
+
|
155
|
+
Authors
|
156
|
+
-------
|
157
|
+
|
158
|
+
* Camptocamp
|
159
|
+
* BCIM
|
160
|
+
* Akretion
|
161
|
+
|
162
|
+
Contributors
|
163
|
+
------------
|
164
|
+
|
165
|
+
- Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
166
|
+
- Simone Orsi <simahawk@gmail.com>
|
167
|
+
- Sébastien Alix <sebastien.alix@camptocamp.com>
|
168
|
+
- Alexandre Fayolle <alexandre.fayolle@camptocamp.com>
|
169
|
+
- Benoit Guillot <benoit.guillot@akretion.com>
|
170
|
+
- Thierry Ducrest <thierry.ducrest@camptocamp.com>
|
171
|
+
- Raphaël Reverdy <raphael.reverdy@akretion.com>
|
172
|
+
- Jacques-Etienne Baudoux <je@bcim.be>
|
173
|
+
- Juan Miguel Sánchez Arce <juan.sanchez@camptocamp.com>
|
174
|
+
- Michael Tietz (MT Software) <mtietz@mt-software.de>
|
175
|
+
- Souheil Bejaoui <souheil.bejaoui@acsone.eu>
|
176
|
+
- Laurent Mignon <laurent.mignon@acsone.eu>
|
177
|
+
|
178
|
+
Design
|
179
|
+
~~~~~~
|
180
|
+
|
181
|
+
- Joël Grand-Guillaume <joel.grandguillaume@camptocamp.com>
|
182
|
+
- Jacques-Etienne Baudoux <je@bcim.be>
|
183
|
+
|
184
|
+
Other credits
|
185
|
+
-------------
|
186
|
+
|
187
|
+
**Financial support**
|
188
|
+
|
189
|
+
- Cosanum
|
190
|
+
- Camptocamp R&D
|
191
|
+
- Akretion R&D
|
192
|
+
|
193
|
+
Maintainers
|
194
|
+
-----------
|
195
|
+
|
196
|
+
This module is maintained by the OCA.
|
197
|
+
|
198
|
+
.. image:: https://odoo-community.org/logo.png
|
199
|
+
:alt: Odoo Community Association
|
200
|
+
:target: https://odoo-community.org
|
201
|
+
|
202
|
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
203
|
+
mission is to support the collaborative development of Odoo features and
|
204
|
+
promote its widespread use.
|
205
|
+
|
206
|
+
.. |maintainer-guewen| image:: https://github.com/guewen.png?size=40px
|
207
|
+
:target: https://github.com/guewen
|
208
|
+
:alt: guewen
|
209
|
+
.. |maintainer-simahawk| image:: https://github.com/simahawk.png?size=40px
|
210
|
+
:target: https://github.com/simahawk
|
211
|
+
:alt: simahawk
|
212
|
+
.. |maintainer-sebalix| image:: https://github.com/sebalix.png?size=40px
|
213
|
+
:target: https://github.com/sebalix
|
214
|
+
:alt: sebalix
|
215
|
+
|
216
|
+
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|
217
|
+
|
218
|
+
|maintainer-guewen| |maintainer-simahawk| |maintainer-sebalix|
|
219
|
+
|
220
|
+
This module is part of the `OCA/stock-logistics-shopfloor <https://github.com/OCA/stock-logistics-shopfloor/tree/18.0/shopfloor>`_ project on GitHub.
|
221
|
+
|
222
|
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|