odoo-addon-shopfloor 16.0.1.0.0.24__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.
Files changed (182) hide show
  1. odoo/addons/shopfloor/README.rst +160 -0
  2. odoo/addons/shopfloor/__init__.py +4 -0
  3. odoo/addons/shopfloor/__manifest__.py +65 -0
  4. odoo/addons/shopfloor/actions/__init__.py +15 -0
  5. odoo/addons/shopfloor/actions/change_package_lot.py +164 -0
  6. odoo/addons/shopfloor/actions/completion_info.py +42 -0
  7. odoo/addons/shopfloor/actions/data.py +329 -0
  8. odoo/addons/shopfloor/actions/data_detail.py +154 -0
  9. odoo/addons/shopfloor/actions/inventory.py +150 -0
  10. odoo/addons/shopfloor/actions/location_content_transfer_sorter.py +89 -0
  11. odoo/addons/shopfloor/actions/message.py +846 -0
  12. odoo/addons/shopfloor/actions/move_line_search.py +119 -0
  13. odoo/addons/shopfloor/actions/packaging.py +59 -0
  14. odoo/addons/shopfloor/actions/savepoint.py +44 -0
  15. odoo/addons/shopfloor/actions/schema.py +182 -0
  16. odoo/addons/shopfloor/actions/schema_detail.py +98 -0
  17. odoo/addons/shopfloor/actions/search.py +187 -0
  18. odoo/addons/shopfloor/actions/stock.py +239 -0
  19. odoo/addons/shopfloor/actions/stock_unreserve.py +66 -0
  20. odoo/addons/shopfloor/components/__init__.py +5 -0
  21. odoo/addons/shopfloor/components/scan_handler_location.py +26 -0
  22. odoo/addons/shopfloor/components/scan_handler_lot.py +26 -0
  23. odoo/addons/shopfloor/components/scan_handler_package.py +26 -0
  24. odoo/addons/shopfloor/components/scan_handler_product.py +26 -0
  25. odoo/addons/shopfloor/components/scan_handler_transfer.py +26 -0
  26. odoo/addons/shopfloor/data/shopfloor_scenario_data.xml +73 -0
  27. odoo/addons/shopfloor/demo/shopfloor_app_demo.xml +12 -0
  28. odoo/addons/shopfloor/demo/shopfloor_menu_demo.xml +64 -0
  29. odoo/addons/shopfloor/demo/shopfloor_profile_demo.xml +8 -0
  30. odoo/addons/shopfloor/demo/stock_picking_type_demo.xml +93 -0
  31. odoo/addons/shopfloor/docs/checkout_diag_seq.plantuml +61 -0
  32. odoo/addons/shopfloor/docs/checkout_diag_seq.png +0 -0
  33. odoo/addons/shopfloor/docs/cluster_picking_diag_seq.plantuml +112 -0
  34. odoo/addons/shopfloor/docs/cluster_picking_diag_seq.png +0 -0
  35. odoo/addons/shopfloor/docs/delivery_diag_seq.plantuml +56 -0
  36. odoo/addons/shopfloor/docs/delivery_diag_seq.png +0 -0
  37. odoo/addons/shopfloor/docs/location_content_transfer_diag_seq.plantuml +66 -0
  38. odoo/addons/shopfloor/docs/location_content_transfer_diag_seq.png +0 -0
  39. odoo/addons/shopfloor/docs/oca_logo.png +0 -0
  40. odoo/addons/shopfloor/docs/single_pack_transfer_diag_seq.plantuml +36 -0
  41. odoo/addons/shopfloor/docs/single_pack_transfer_diag_seq.png +0 -0
  42. odoo/addons/shopfloor/docs/zone_picking_diag_seq.plantuml +85 -0
  43. odoo/addons/shopfloor/docs/zone_picking_diag_seq.png +0 -0
  44. odoo/addons/shopfloor/exceptions.py +6 -0
  45. odoo/addons/shopfloor/i18n/ca.po +1802 -0
  46. odoo/addons/shopfloor/i18n/de.po +1791 -0
  47. odoo/addons/shopfloor/i18n/es_AR.po +2147 -0
  48. odoo/addons/shopfloor/i18n/pt_BR.po +1791 -0
  49. odoo/addons/shopfloor/i18n/shopfloor.pot +1877 -0
  50. odoo/addons/shopfloor/models/__init__.py +12 -0
  51. odoo/addons/shopfloor/models/priority_postpone_mixin.py +41 -0
  52. odoo/addons/shopfloor/models/shopfloor_app.py +9 -0
  53. odoo/addons/shopfloor/models/shopfloor_menu.py +436 -0
  54. odoo/addons/shopfloor/models/stock_location.py +76 -0
  55. odoo/addons/shopfloor/models/stock_move.py +119 -0
  56. odoo/addons/shopfloor/models/stock_move_line.py +307 -0
  57. odoo/addons/shopfloor/models/stock_package_level.py +50 -0
  58. odoo/addons/shopfloor/models/stock_picking.py +118 -0
  59. odoo/addons/shopfloor/models/stock_picking_batch.py +41 -0
  60. odoo/addons/shopfloor/models/stock_picking_type.py +26 -0
  61. odoo/addons/shopfloor/models/stock_quant.py +31 -0
  62. odoo/addons/shopfloor/models/stock_quant_package.py +101 -0
  63. odoo/addons/shopfloor/readme/CONTRIBUTORS.rst +18 -0
  64. odoo/addons/shopfloor/readme/CREDITS.rst +5 -0
  65. odoo/addons/shopfloor/readme/DESCRIPTION.rst +17 -0
  66. odoo/addons/shopfloor/readme/HISTORY.rst +4 -0
  67. odoo/addons/shopfloor/readme/ROADMAP.rst +4 -0
  68. odoo/addons/shopfloor/readme/USAGE.rst +6 -0
  69. odoo/addons/shopfloor/security/groups.xml +17 -0
  70. odoo/addons/shopfloor/services/__init__.py +16 -0
  71. odoo/addons/shopfloor/services/checkout.py +1763 -0
  72. odoo/addons/shopfloor/services/cluster_picking.py +1628 -0
  73. odoo/addons/shopfloor/services/delivery.py +828 -0
  74. odoo/addons/shopfloor/services/forms/__init__.py +1 -0
  75. odoo/addons/shopfloor/services/forms/picking_form.py +78 -0
  76. odoo/addons/shopfloor/services/location_content_transfer.py +1194 -0
  77. odoo/addons/shopfloor/services/menu.py +60 -0
  78. odoo/addons/shopfloor/services/picking_batch.py +126 -0
  79. odoo/addons/shopfloor/services/service.py +101 -0
  80. odoo/addons/shopfloor/services/single_pack_transfer.py +366 -0
  81. odoo/addons/shopfloor/services/zone_picking.py +1938 -0
  82. odoo/addons/shopfloor/static/description/icon.png +0 -0
  83. odoo/addons/shopfloor/static/description/index.html +500 -0
  84. odoo/addons/shopfloor/tests/__init__.py +83 -0
  85. odoo/addons/shopfloor/tests/common.py +324 -0
  86. odoo/addons/shopfloor/tests/models.py +29 -0
  87. odoo/addons/shopfloor/tests/test_actions_change_package_lot.py +1175 -0
  88. odoo/addons/shopfloor/tests/test_actions_data.py +376 -0
  89. odoo/addons/shopfloor/tests/test_actions_data_base.py +244 -0
  90. odoo/addons/shopfloor/tests/test_actions_data_detail.py +322 -0
  91. odoo/addons/shopfloor/tests/test_actions_search.py +248 -0
  92. odoo/addons/shopfloor/tests/test_actions_stock.py +48 -0
  93. odoo/addons/shopfloor/tests/test_checkout_auto_post.py +67 -0
  94. odoo/addons/shopfloor/tests/test_checkout_base.py +81 -0
  95. odoo/addons/shopfloor/tests/test_checkout_cancel_line.py +154 -0
  96. odoo/addons/shopfloor/tests/test_checkout_change_packaging.py +184 -0
  97. odoo/addons/shopfloor/tests/test_checkout_done.py +133 -0
  98. odoo/addons/shopfloor/tests/test_checkout_list_delivery_packaging.py +131 -0
  99. odoo/addons/shopfloor/tests/test_checkout_list_package.py +327 -0
  100. odoo/addons/shopfloor/tests/test_checkout_new_package.py +88 -0
  101. odoo/addons/shopfloor/tests/test_checkout_no_package.py +95 -0
  102. odoo/addons/shopfloor/tests/test_checkout_scan.py +174 -0
  103. odoo/addons/shopfloor/tests/test_checkout_scan_line.py +377 -0
  104. odoo/addons/shopfloor/tests/test_checkout_scan_line_base.py +25 -0
  105. odoo/addons/shopfloor/tests/test_checkout_scan_line_no_prefill_qty.py +91 -0
  106. odoo/addons/shopfloor/tests/test_checkout_scan_package_action.py +451 -0
  107. odoo/addons/shopfloor/tests/test_checkout_scan_package_action_no_prefill_qty.py +107 -0
  108. odoo/addons/shopfloor/tests/test_checkout_select.py +74 -0
  109. odoo/addons/shopfloor/tests/test_checkout_select_line.py +130 -0
  110. odoo/addons/shopfloor/tests/test_checkout_select_package_base.py +64 -0
  111. odoo/addons/shopfloor/tests/test_checkout_set_qty.py +257 -0
  112. odoo/addons/shopfloor/tests/test_checkout_summary.py +69 -0
  113. odoo/addons/shopfloor/tests/test_cluster_picking_base.py +83 -0
  114. odoo/addons/shopfloor/tests/test_cluster_picking_batch.py +109 -0
  115. odoo/addons/shopfloor/tests/test_cluster_picking_change_pack_lot.py +111 -0
  116. odoo/addons/shopfloor/tests/test_cluster_picking_is_zero.py +98 -0
  117. odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination.py +376 -0
  118. odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination_no_prefill_qty.py +115 -0
  119. odoo/addons/shopfloor/tests/test_cluster_picking_scan_line.py +402 -0
  120. odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_location_or_pack_first.py +114 -0
  121. odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_no_prefill_qty.py +70 -0
  122. odoo/addons/shopfloor/tests/test_cluster_picking_select.py +387 -0
  123. odoo/addons/shopfloor/tests/test_cluster_picking_skip.py +90 -0
  124. odoo/addons/shopfloor/tests/test_cluster_picking_stock_issue.py +364 -0
  125. odoo/addons/shopfloor/tests/test_cluster_picking_unload.py +911 -0
  126. odoo/addons/shopfloor/tests/test_delivery_base.py +155 -0
  127. odoo/addons/shopfloor/tests/test_delivery_done.py +108 -0
  128. odoo/addons/shopfloor/tests/test_delivery_list_stock_picking.py +49 -0
  129. odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_line.py +119 -0
  130. odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_pack.py +107 -0
  131. odoo/addons/shopfloor/tests/test_delivery_scan_deliver.py +557 -0
  132. odoo/addons/shopfloor/tests/test_delivery_select.py +38 -0
  133. odoo/addons/shopfloor/tests/test_delivery_set_qty_done_line.py +91 -0
  134. odoo/addons/shopfloor/tests/test_delivery_set_qty_done_pack.py +135 -0
  135. odoo/addons/shopfloor/tests/test_delivery_sublocation.py +180 -0
  136. odoo/addons/shopfloor/tests/test_location_content_transfer_base.py +136 -0
  137. odoo/addons/shopfloor/tests/test_location_content_transfer_get_work.py +125 -0
  138. odoo/addons/shopfloor/tests/test_location_content_transfer_mix.py +509 -0
  139. odoo/addons/shopfloor/tests/test_location_content_transfer_putaway.py +143 -0
  140. odoo/addons/shopfloor/tests/test_location_content_transfer_scan_location.py +34 -0
  141. odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_all.py +343 -0
  142. odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_package_or_line.py +1074 -0
  143. odoo/addons/shopfloor/tests/test_location_content_transfer_single.py +748 -0
  144. odoo/addons/shopfloor/tests/test_location_content_transfer_start.py +359 -0
  145. odoo/addons/shopfloor/tests/test_menu_base.py +261 -0
  146. odoo/addons/shopfloor/tests/test_menu_counters.py +61 -0
  147. odoo/addons/shopfloor/tests/test_misc.py +25 -0
  148. odoo/addons/shopfloor/tests/test_move_action_assign.py +87 -0
  149. odoo/addons/shopfloor/tests/test_openapi.py +21 -0
  150. odoo/addons/shopfloor/tests/test_picking_form.py +62 -0
  151. odoo/addons/shopfloor/tests/test_scan_anything.py +49 -0
  152. odoo/addons/shopfloor/tests/test_single_pack_transfer.py +1121 -0
  153. odoo/addons/shopfloor/tests/test_single_pack_transfer_base.py +32 -0
  154. odoo/addons/shopfloor/tests/test_single_pack_transfer_putaway.py +104 -0
  155. odoo/addons/shopfloor/tests/test_stock_split.py +204 -0
  156. odoo/addons/shopfloor/tests/test_user.py +42 -0
  157. odoo/addons/shopfloor/tests/test_zone_picking_base.py +608 -0
  158. odoo/addons/shopfloor/tests/test_zone_picking_change_pack_lot.py +140 -0
  159. odoo/addons/shopfloor/tests/test_zone_picking_select_line.py +723 -0
  160. odoo/addons/shopfloor/tests/test_zone_picking_select_line_first_scan_location.py +207 -0
  161. odoo/addons/shopfloor/tests/test_zone_picking_select_line_first_scan_location.py.bak +202 -0
  162. odoo/addons/shopfloor/tests/test_zone_picking_select_line_no_prefill_qty.py +107 -0
  163. odoo/addons/shopfloor/tests/test_zone_picking_select_picking_type.py +26 -0
  164. odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination.py +643 -0
  165. odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination_no_prefill_qty.py +146 -0
  166. odoo/addons/shopfloor/tests/test_zone_picking_set_line_destination_pick_pack.py +241 -0
  167. odoo/addons/shopfloor/tests/test_zone_picking_start.py +206 -0
  168. odoo/addons/shopfloor/tests/test_zone_picking_stock_issue.py +121 -0
  169. odoo/addons/shopfloor/tests/test_zone_picking_unload_all.py +353 -0
  170. odoo/addons/shopfloor/tests/test_zone_picking_unload_buffer_lines.py +113 -0
  171. odoo/addons/shopfloor/tests/test_zone_picking_unload_set_destination.py +374 -0
  172. odoo/addons/shopfloor/tests/test_zone_picking_unload_single.py +123 -0
  173. odoo/addons/shopfloor/tests/test_zone_picking_zero_check.py +43 -0
  174. odoo/addons/shopfloor/utils.py +13 -0
  175. odoo/addons/shopfloor/views/shopfloor_menu.xml +167 -0
  176. odoo/addons/shopfloor/views/stock_location.xml +20 -0
  177. odoo/addons/shopfloor/views/stock_move_line.xml +52 -0
  178. odoo/addons/shopfloor/views/stock_picking_type.xml +19 -0
  179. odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/METADATA +192 -0
  180. odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/RECORD +182 -0
  181. odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/WHEEL +5 -0
  182. odoo_addon_shopfloor-16.0.1.0.0.24.dist-info/top_level.txt +1 -0
@@ -0,0 +1,73 @@
1
+ <odoo noupdate="1">
2
+ <record id="scenario_single_pack_transfer" model="shopfloor.scenario">
3
+ <field name="name">Single Pack Transfer</field>
4
+ <field name="key">single_pack_transfer</field>
5
+ <field name="options_edit">
6
+ {
7
+ "allow_create_moves": true,
8
+ "allow_unreserve_other_moves": true,
9
+ "allow_ignore_no_putaway_available": true,
10
+ "must_move_entire_pack": true
11
+ }
12
+ </field>
13
+ </record>
14
+ <record id="scenario_zone_picking" model="shopfloor.scenario">
15
+ <field name="name">Zone Picking</field>
16
+ <field name="key">zone_picking</field>
17
+ <field name="options_edit">
18
+ {
19
+ "pick_pack_same_time": true,
20
+ "unload_package_at_destination": true,
21
+ "multiple_move_single_pack": true,
22
+ "no_prefill_qty": true,
23
+ "scan_location_or_pack_first": true
24
+ }
25
+ </field>
26
+ </record>
27
+ <record id="scenario_cluster_picking" model="shopfloor.scenario">
28
+ <field name="name">Cluster Picking</field>
29
+ <field name="key">cluster_picking</field>
30
+ <field name="options_edit">
31
+ {
32
+ "unload_package_at_destination": true,
33
+ "multiple_move_single_pack": true,
34
+ "no_prefill_qty": true,
35
+ "scan_location_or_pack_first": true
36
+ }
37
+ </field>
38
+ </record>
39
+ <record id="scenario_checkout" model="shopfloor.scenario">
40
+ <field name="name">Checkout</field>
41
+ <field name="key">checkout</field>
42
+ <field name="options_edit">
43
+ {
44
+ "no_prefill_qty": true,
45
+ "show_oneline_package_content": true,
46
+ "auto_post_line": true
47
+ }
48
+ </field>
49
+ </record>
50
+ <record id="scenario_delivery" model="shopfloor.scenario">
51
+ <field name="name">Delivery</field>
52
+ <field name="key">delivery</field>
53
+ <field name="options_edit">
54
+ {
55
+ "must_move_entire_pack": true,
56
+ "allow_prepackaged_product": true
57
+ }
58
+ </field>
59
+ </record>
60
+ <record id="scenario_location_content_transfer" model="shopfloor.scenario">
61
+ <field name="name">Location content transfer</field>
62
+ <field name="key">location_content_transfer</field>
63
+ <field name="options_edit">
64
+ {
65
+ "allow_create_moves": true,
66
+ "allow_unreserve_other_moves": true,
67
+ "allow_ignore_no_putaway_available": true,
68
+ "allow_get_work": true,
69
+ "no_prefill_qty": true
70
+ }
71
+ </field>
72
+ </record>
73
+ </odoo>
@@ -0,0 +1,12 @@
1
+ <odoo noupdate="1">
2
+ <record id="app_demo" model="shopfloor.app">
3
+ <field name="name">Shopfloor WMS (demo)</field>
4
+ <field name="short_name">WMS (demo)</field>
5
+ <field name="tech_name">wms_demo</field>
6
+ <field name="category">wms</field>
7
+ <field
8
+ name="profile_ids"
9
+ eval="[(4, ref('shopfloor.profile_demo_1')), (4, ref('shopfloor.profile_demo_2'))]"
10
+ />
11
+ </record>
12
+ </odoo>
@@ -0,0 +1,64 @@
1
+ <odoo noupdate="1">
2
+ <record id="shopfloor_menu_demo_single_pallet_transfer" model="shopfloor.menu">
3
+ <field name="name">Single Pallet Transfer</field>
4
+ <field name="sequence">20</field>
5
+ <field name="profile_id" ref="shopfloor.profile_demo_1" />
6
+ <field name="allow_move_create" eval="1" />
7
+ <field name="scenario_id" ref="shopfloor.scenario_single_pack_transfer" />
8
+ <field
9
+ name="picking_type_ids"
10
+ eval="[(4, ref('shopfloor.picking_type_single_pallet_transfer_demo'))]"
11
+ />
12
+ </record>
13
+ <record id="shopfloor_menu_demo_zone_picking" model="shopfloor.menu">
14
+ <field name="name">Zone Picking</field>
15
+ <field name="sequence">35</field>
16
+ <field name="profile_id" ref="shopfloor.profile_demo_1" />
17
+ <field name="scenario_id" ref="shopfloor.scenario_zone_picking" />
18
+ <field
19
+ name="picking_type_ids"
20
+ eval="[(4, ref('shopfloor.picking_type_zone_picking_demo'))]"
21
+ />
22
+ </record>
23
+ <record id="shopfloor_menu_demo_cluster_picking" model="shopfloor.menu">
24
+ <field name="name">Cluster Picking</field>
25
+ <field name="sequence">30</field>
26
+ <field name="profile_id" ref="shopfloor.profile_demo_1" />
27
+ <field name="scenario_id" ref="shopfloor.scenario_cluster_picking" />
28
+ <field
29
+ name="picking_type_ids"
30
+ eval="[(4, ref('shopfloor.picking_type_cluster_picking_demo'))]"
31
+ />
32
+ </record>
33
+ <record id="shopfloor_menu_demo_checkout" model="shopfloor.menu">
34
+ <field name="name">Checkout</field>
35
+ <field name="sequence">40</field>
36
+ <field name="profile_id" ref="shopfloor.profile_demo_1" />
37
+ <field name="scenario_id" ref="shopfloor.scenario_checkout" />
38
+ <field
39
+ name="picking_type_ids"
40
+ eval="[(4, ref('shopfloor.picking_type_checkout_demo'))]"
41
+ />
42
+ </record>
43
+ <record id="shopfloor_menu_demo_delivery" model="shopfloor.menu">
44
+ <field name="name">Delivery</field>
45
+ <field name="sequence">50</field>
46
+ <field name="profile_id" ref="shopfloor.profile_demo_2" />
47
+ <field name="scenario_id" ref="shopfloor.scenario_delivery" />
48
+ <field
49
+ name="picking_type_ids"
50
+ eval="[(4, ref('shopfloor.picking_type_delivery_demo'))]"
51
+ />
52
+ </record>
53
+ <record id="shopfloor_menu_demo_location_content_transfer" model="shopfloor.menu">
54
+ <field name="name">Location Content Transfer</field>
55
+ <field name="sequence">60</field>
56
+ <field name="profile_id" ref="shopfloor.profile_demo_1" />
57
+ <field name="allow_move_create" eval="1" />
58
+ <field name="scenario_id" ref="shopfloor.scenario_location_content_transfer" />
59
+ <field
60
+ name="picking_type_ids"
61
+ eval="[(4, ref('shopfloor.picking_type_location_content_transfer_demo'))]"
62
+ />
63
+ </record>
64
+ </odoo>
@@ -0,0 +1,8 @@
1
+ <odoo>
2
+ <record id="profile_demo_1" model="shopfloor.profile">
3
+ <field name="name">WH worker</field>
4
+ </record>
5
+ <record id="profile_demo_2" model="shopfloor.profile">
6
+ <field name="name">WH delivery</field>
7
+ </record>
8
+ </odoo>
@@ -0,0 +1,93 @@
1
+ <odoo noupdate="1">
2
+ <record id="picking_type_single_pallet_transfer_demo" model="stock.picking.type">
3
+ <field name="name">Single Pallet Transfer</field>
4
+ <field name="sequence_code">SPT</field>
5
+ <field name="sequence" eval="10" />
6
+ <field name="warehouse_id" ref="stock.warehouse0" />
7
+ <field name="default_location_src_id" ref="stock.stock_location_stock" />
8
+ <field name="default_location_dest_id" ref="stock.stock_location_stock" />
9
+ <field name="show_entire_packs" eval="1" />
10
+ <field name="use_create_lots" eval="0" />
11
+ <field name="use_existing_lots" eval="1" />
12
+ <field name="color" eval="5" />
13
+ <field name="code">internal</field>
14
+ <field name="show_operations" eval="1" />
15
+ <field name="display_completion_info" eval="1" />
16
+ </record>
17
+ <record id="picking_type_zone_picking_demo" model="stock.picking.type">
18
+ <field name="name">Zone Picking</field>
19
+ <field name="sequence_code">ZPI</field>
20
+ <field name="sequence" eval="10" />
21
+ <field name="warehouse_id" ref="stock.warehouse0" />
22
+ <field name="default_location_src_id" ref="stock.stock_location_stock" />
23
+ <field name="default_location_dest_id" ref="stock.location_pack_zone" />
24
+ <field name="show_entire_packs" eval="1" />
25
+ <field name="use_create_lots" eval="0" />
26
+ <field name="use_existing_lots" eval="1" />
27
+ <field name="color" eval="5" />
28
+ <field name="code">internal</field>
29
+ <field name="show_operations" eval="1" />
30
+ <field name="display_completion_info" eval="1" />
31
+ </record>
32
+ <record id="picking_type_cluster_picking_demo" model="stock.picking.type">
33
+ <field name="name">Cluster Picking</field>
34
+ <field name="sequence_code">CPI</field>
35
+ <field name="sequence" eval="10" />
36
+ <field name="warehouse_id" ref="stock.warehouse0" />
37
+ <field name="default_location_src_id" ref="stock.stock_location_stock" />
38
+ <field name="default_location_dest_id" ref="stock.location_pack_zone" />
39
+ <field name="show_entire_packs" eval="1" />
40
+ <field name="use_create_lots" eval="0" />
41
+ <field name="use_existing_lots" eval="1" />
42
+ <field name="color" eval="5" />
43
+ <field name="code">internal</field>
44
+ <field name="show_operations" eval="1" />
45
+ <field name="display_completion_info" eval="1" />
46
+ <field name="shopfloor_zero_check" eval="1" />
47
+ </record>
48
+ <record id="picking_type_checkout_demo" model="stock.picking.type">
49
+ <field name="name">Checkout</field>
50
+ <field name="sequence_code">CHK</field>
51
+ <field name="sequence" eval="10" />
52
+ <field name="warehouse_id" ref="stock.warehouse0" />
53
+ <field name="default_location_src_id" ref="stock.location_pack_zone" />
54
+ <field name="default_location_dest_id" ref="stock.stock_location_output" />
55
+ <field name="show_entire_packs" eval="1" />
56
+ <field name="use_create_lots" eval="0" />
57
+ <field name="use_existing_lots" eval="1" />
58
+ <field name="color" eval="5" />
59
+ <field name="code">internal</field>
60
+ <field name="show_operations" eval="1" />
61
+ <field name="display_completion_info" eval="1" />
62
+ </record>
63
+ <record id="picking_type_delivery_demo" model="stock.picking.type">
64
+ <field name="name">Delivery</field>
65
+ <field name="sequence_code">DEL</field>
66
+ <field name="sequence" eval="10" />
67
+ <field name="warehouse_id" ref="stock.warehouse0" />
68
+ <field name="default_location_src_id" ref="stock.stock_location_output" />
69
+ <field name="default_location_dest_id" ref="stock.stock_location_customers" />
70
+ <field name="show_entire_packs" eval="1" />
71
+ <field name="use_create_lots" eval="0" />
72
+ <field name="use_existing_lots" eval="1" />
73
+ <field name="color" eval="5" />
74
+ <field name="code">internal</field>
75
+ <field name="show_operations" eval="1" />
76
+ <field name="display_completion_info" eval="1" />
77
+ </record>
78
+ <record id="picking_type_location_content_transfer_demo" model="stock.picking.type">
79
+ <field name="name">Location Content Transfer</field>
80
+ <field name="sequence_code">LCT</field>
81
+ <field name="sequence" eval="10" />
82
+ <field name="warehouse_id" ref="stock.warehouse0" />
83
+ <field name="default_location_src_id" ref="stock.stock_location_stock" />
84
+ <field name="default_location_dest_id" ref="stock.stock_location_stock" />
85
+ <field name="show_entire_packs" eval="1" />
86
+ <field name="use_create_lots" eval="0" />
87
+ <field name="use_existing_lots" eval="1" />
88
+ <field name="color" eval="5" />
89
+ <field name="code">internal</field>
90
+ <field name="show_operations" eval="1" />
91
+ <field name="display_completion_info" eval="1" />
92
+ </record>
93
+ </odoo>
@@ -0,0 +1,61 @@
1
+ # Diagram to generate with PlantUML (https://plantuml.com/)
2
+ #
3
+ # $ sudo apt install plantuml
4
+ # $ plantuml delivery_diag_seq.plantuml
5
+ #
6
+
7
+ @startuml
8
+
9
+ skinparam roundcorner 20
10
+ skinparam sequence {
11
+
12
+ ParticipantBorderColor #875A7B
13
+ ParticipantBackgroundColor #875A7B
14
+ ParticipantFontSize 17
15
+ ParticipantFontColor white
16
+
17
+ LifeLineBorderColor #875A7B
18
+
19
+ ArrowColor #00A09D
20
+ }
21
+
22
+ header <img:oca_logo.png>
23
+ title <size:35>Checkout scenario</size>
24
+
25
+ == /list_stock_picking ==
26
+ select_document -> manual_selection: **/list_stock_picking**
27
+
28
+ == /select ==
29
+ manual_selection -> select_line: **/select**(picking_id)
30
+
31
+ == /scan_document ==
32
+ select_document -> select_line: **/scan_document**(barcode, picking_id=None) \n(scan a picking a product or ???)
33
+
34
+ == /select_line ==
35
+ select_line -> select_package: **/select_line**(picking_id, package_id, move_line_ids)
36
+
37
+ == /list_delivery_packaging ==
38
+ select_package -> select_delivery_packaging: **/list_delivery_packaging**(picking_id, selected_line_ids)
39
+
40
+
41
+ == /list_dest_package ==
42
+ select_package -> select_dest_package: **/list_dest_package**(picking_id, selected_line_ids)
43
+ select_package -> select_package: **/list_dest_package**(picking_id, selected_line_ids) \n No Valid package to select
44
+
45
+ == /set_dest_package ==
46
+ select_dest_package -> select_line: **/set_dest_package(picking_id, selected_line_ids, package_id)
47
+
48
+ == /scan_package_action ==
49
+ select_delivery_packaging -> summary: **/scan_package_action**(picking_id, selected_line_ids, barcode)
50
+
51
+ == /cancel_line ==
52
+ summary -> select_line: **/cancel_line**(picking_id, package_id=None, line_id=None)
53
+
54
+ == /select ==
55
+ summary -> select_line: **/select**(picking_id) \nContinue checkout
56
+
57
+ == /done ==
58
+ summary -> select_document: **/done(picking_id)**
59
+
60
+
61
+ @enduml
@@ -0,0 +1,112 @@
1
+ # Diagram to generate with PlantUML (https://plantuml.com/)
2
+ #
3
+ # $ sudo apt install plantuml
4
+ # $ plantuml cluster_picking_diag_seq.plantuml
5
+ #
6
+
7
+ @startuml
8
+ participant start
9
+ participant manual_selection
10
+ participant confirm_start
11
+
12
+ participant start_line
13
+ participant scan_destination
14
+ participant zero_check
15
+ participant stock_issue
16
+ participant change_pack_lot
17
+
18
+ participant unload_all
19
+ participant confirm_unload_all
20
+ participant unload_single
21
+ participant unload_set_destination
22
+ participant confirm_unload_set_destination
23
+
24
+ skinparam roundcorner 20
25
+ skinparam sequence {
26
+
27
+ ParticipantBorderColor #875A7B
28
+ ParticipantBackgroundColor #875A7B
29
+ ParticipantFontSize 17
30
+ ParticipantFontColor white
31
+
32
+ LifeLineBorderColor #875A7B
33
+
34
+ ArrowColor #00A09D
35
+ }
36
+
37
+ header <img:oca_logo.png>
38
+ title <size:35>Cluster Picking scenario</size>
39
+
40
+
41
+ == Batch Transfer Selection ==
42
+ start -[#red]> start: **/find_batch** \n(error)
43
+ start -> confirm_start: **/find_batch**
44
+
45
+ start -> manual_selection: **/list_batch**
46
+
47
+ manual_selection -[#red]> manual_selection: **/select(picking_batch_id)** \n(error)
48
+ manual_selection -> confirm_start: **/select(picking_batch_id)**
49
+ manual_selection -> start: Button **Back** (client-side)
50
+
51
+ confirm_start -> start_line: **/confirm_start(picking_batch_id)**
52
+ confirm_start -> unload_all: **/confirm_start(picking_batch_id)** \n(we reopen a batch with all lines picked and have to be unloaded in the same destination)
53
+ confirm_start -> unload_single: **/confirm_start(picking_batch_id)** \n(we reopen a batch with all lines picked and have to be unloaded in different destinations)
54
+ confirm_start -> start: **/unassign(picking_batch_id)**
55
+
56
+ == Picking ==
57
+
58
+ start_line -[#red]> start_line: **/scan_line(picking_batch_id, move_line_id, barcode[package|product|lot])** \n(error)
59
+ start_line -> scan_destination: **/scan_line(picking_batch_id, move_line_id, barcode[package|product|lot])** \n(error)
60
+
61
+ scan_destination -[#red]> scan_destination: **/scan_destination_pack(picking_batch_id, move_line_id, barcode[package], quantity)** \n(error)
62
+ scan_destination -> start_line: **/scan_destination_pack(picking_batch_id, move_line_id, barcode[package], quantity)** \n(other lines to pick)
63
+ scan_destination -> zero_check: **/scan_destination_pack(picking_batch_id, move_line_id, barcode[package], quantity)** \n(source location is now empty)
64
+ scan_destination -> unload_all: **/scan_destination_pack(picking_batch_id, move_line_id, barcode[package], quantity)** \n(all lines picked and same destination)
65
+ scan_destination -> unload_single: **/scan_destination_pack(picking_batch_id, move_line_id, barcode[package], quantity)** \n(all lines picked and different destinations)
66
+
67
+ start_line -> unload_all: **/prepare_unload(picking_batch_id)** \n(all lines picked and same destination)
68
+ start_line -> unload_single: **/prepare_unload(picking_batch_id)** \n(all lines picked and different destinations)
69
+
70
+ start_line -> start_line: **/skip_line(picking_batch_id, move_line_id)**
71
+
72
+ start_line -> stock_issue: Button *Stock Issue* (client-side)
73
+ stock_issue -> start_line: **/stock_issue(picking_batch_id, move_line_id)** \n(other lines to pick)
74
+ stock_issue -> unload_all: **/stock_issue(picking_batch_id, move_line_id)** \n(all lines picked and same destination)
75
+ stock_issue -> unload_single: **/stock_issue(picking_batch_id, move_line_id)** \n(all lines picked and different destinations)
76
+
77
+ zero_check -> start_line: **/is_zero(picking_batch_id, move_line_id, zero[bool])** \n(other lines to pick)
78
+ zero_check -> unload_all: **/is_zero(picking_batch_id, move_line_id, zero[bool])** \n(all lines picked and same destination)
79
+ zero_check -> unload_single: **/is_zero(picking_batch_id, move_line_id, zero[bool])** \n(all lines picked and different destinations)
80
+
81
+ start_line -> change_pack_lot: Button *Change Package/Lot* (client-side)
82
+ change_pack_lot -[#red]> change_pack_lot: **/change_pack_lot(picking_batch_id, move_line_id, barcode[package|lot])** \n(error)
83
+ change_pack_lot -> scan_destination: **/change_pack_lot(picking_batch_id, move_line_id, barcode[package|lot])**
84
+
85
+ == Unloading ==
86
+
87
+ unload_all -[#red]> unload_all: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(error)
88
+ unload_all -> start_line: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(unloaded, batch contains other lines to pick)
89
+ unload_all -> unload_single: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(lines have different destinations after all)
90
+ unload_all -> confirm_unload_all: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(change of destination to confirm)
91
+ unload_all -> start: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(batch finished)
92
+
93
+ confirm_unload_all -[#red]> unload_all: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(error)
94
+ confirm_unload_all -> start_line: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(unloaded, batch contains other lines to pick)
95
+ confirm_unload_all -> unload_single: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(lines have different destinations after all)
96
+ confirm_unload_all -> start: **/set_destination_all(picking_batch_id, barcode[location], confirmation=False)** \n(batch finished)
97
+
98
+ unload_all -> unload_single: **/unload_split(picking_batch_id)**
99
+
100
+ unload_single -[#red]> unload_single: **/unload_scan_pack(picking_batch_id, package_id, barcode[location])** \n(error)
101
+ unload_single -> start_line: **/unload_scan_pack(picking_batch_id, package_id, barcode[location])** \n(package not found and still have lines to pick)
102
+ unload_single -> unload_set_destination: **/unload_scan_pack(picking_batch_id, package_id, barcode[location])** \n(scan is ok, has to set a destination)
103
+
104
+ unload_set_destination -[#red]> unload_single: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(error)
105
+ unload_set_destination -> confirm_unload_set_destination: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(change of destination needs confirmation)
106
+ unload_set_destination -> start_line: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(batch has other lines to pick)
107
+ unload_set_destination -> start: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(batch finished)
108
+ confirm_unload_set_destination -[#red]> unload_single: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(error)
109
+ confirm_unload_set_destination -> start_line: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(batch has other lines to pick)
110
+ confirm_unload_set_destination -> start: **/unload_scan_destination(picking_batch_id, package_id, barcode[location], confirmation=False)** \n(batch finished)
111
+
112
+ @enduml
@@ -0,0 +1,56 @@
1
+ # Diagram to generate with PlantUML (https://plantuml.com/)
2
+ #
3
+ # $ sudo apt install plantuml
4
+ # $ plantuml delivery_diag_seq.plantuml
5
+ #
6
+
7
+ @startuml
8
+
9
+ skinparam roundcorner 20
10
+ skinparam sequence {
11
+
12
+ ParticipantBorderColor #875A7B
13
+ ParticipantBackgroundColor #875A7B
14
+ ParticipantFontSize 17
15
+ ParticipantFontColor white
16
+
17
+ LifeLineBorderColor #875A7B
18
+
19
+ ArrowColor #00A09D
20
+ }
21
+
22
+ header <img:oca_logo.png>
23
+ title <size:35>Delivery scenario</size>
24
+
25
+ == /list_stock_picking ==
26
+ deliver -> manual_selection: **/list_stock_picking**
27
+
28
+ == /select ==
29
+ manual_selection -> deliver: **/select**(picking_id)
30
+
31
+ == /scan_deliver ==
32
+ deliver -> deliver: **/scan_deliver**(barcode, picking_id=None) \n(scan a picking to display its lines, or a package/lot/product to process related lines,\nwhen all the available move lines of the transfer are done, the stock picking is set to done)
33
+
34
+ == /set_qty_done_pack ==
35
+
36
+ deliver -> deliver: **/set_qty_done_pack(picking_id, package_id)** \n(when all the available move lines of the transfer are done, the transfer is set to done.)
37
+
38
+ == /set_qty_done_line ==
39
+
40
+ deliver -> deliver: **/set_qty_done_line(picking_id, move_line_id)** \n(when all the available move lines of the transfer are done, the transfer is set to done.)
41
+
42
+ == /reset_qty_done_pack ==
43
+
44
+ deliver -> deliver: **/reset_qty_done_pack(picking_id, package_id)** \n(remove "Done" on a package)
45
+
46
+ == /reset_qty_done_line ==
47
+
48
+ deliver -> deliver: **/reset_qty_done_line(picking_id, move_line_id)** \n(remove "Done" on a move line)
49
+
50
+ == /done ==
51
+
52
+ deliver -> deliver: **/done(picking_id)** \n(all lines processed)
53
+ deliver -> confirm_done: **/done(picking_id)** \n(lines partially processed, need confirmation)
54
+ confirm_done -> deliver: **/done(picking_id, confirm=True)**
55
+
56
+ @enduml
@@ -0,0 +1,66 @@
1
+ # Diagram to generate with PlantUML (https://plantuml.com/)
2
+ #
3
+ # $ sudo apt install plantuml
4
+ # $ plantuml location_content_transfer_diag_seq.plantuml
5
+ #
6
+
7
+ @startuml
8
+
9
+ skinparam roundcorner 20
10
+ skinparam sequence {
11
+
12
+ ParticipantBorderColor #875A7B
13
+ ParticipantBackgroundColor #875A7B
14
+ ParticipantFontSize 17
15
+ ParticipantFontColor white
16
+
17
+ LifeLineBorderColor #875A7B
18
+
19
+ ArrowColor #00A09D
20
+ }
21
+
22
+ header <img:oca_logo.png>
23
+ title <size:35>Location Content Transfer scenario</size>
24
+
25
+ start_or_recover -> get_work : `get_work` option is enabled
26
+ start_or_recover -> scan_location : `get_work` option is not enabled
27
+ start_or_recover -> scan_destination_all : existing work to resume for the user
28
+ start_or_recover -> start_single : existing work to resume for the user
29
+
30
+ == /find_work ==
31
+ get_work -> scan_location: **/find_work** (work found)
32
+ get_work -> get_work: **/find_work** (no work available)
33
+ get_work -> scan_location: click on `Manual Selection` button
34
+
35
+ == /cancel_work ==
36
+ scan_location -> get_work: **/cancel_work(location_id)** \n(Only available coming from `get_work`)
37
+
38
+ == /scan_location ==
39
+ scan_location -> scan_location: **/scan_location(barcode)** \n(Location not found)
40
+ scan_location -> scan_destination_all: **/scan_location(barcode)** \n(lines and package levels have the same destination)
41
+ scan_location -> start_single: **/scan_location(barcode)** \n(lines or package levels have different destination)
42
+
43
+ == /scan_package ==
44
+ start_single -> start_single: **/scan_package(barcode)** \n(barcode not found)
45
+ start_single -> scan_destination: **/scan_package(barcode)**
46
+
47
+ == /postpone_package ==
48
+ start_single -> start_single: **/postpone_package(location_id, package_level_id)**
49
+
50
+ == /dismiss_package_level ==
51
+ start_single -> start_single: **/dismiss_package_level(location_id, package_level_id)**
52
+
53
+ == /stock_out_line ==
54
+ start_single -> start_single: **/dismiss_package_level(location_id, move_line_id)** \n(continue with next line or package level)
55
+ start_single -> done: **/dismiss_package_level(location_id, move_line_id)** \n(no more content to move)
56
+
57
+ == /set_destination_all ==
58
+ scan_destination_all -> done: **/set_destination_all(location_id)**
59
+ scan_destination_all -> scan_destination_all: **/set_destination_all(location_id)** \n(Invalid destination)
60
+
61
+ == /go_to_single ==
62
+ scan_destination_all -> start_single: **/go_to_single(location_id)**
63
+
64
+ done -> start_or_recover:
65
+
66
+ @enduml
Binary file
@@ -0,0 +1,36 @@
1
+ # Diagram to generate with PlantUML (https://plantuml.com/)
2
+ #
3
+ # $ sudo apt install plantuml
4
+ # $ plantuml single_pack_transfer_diag_seq.plantuml
5
+ #
6
+
7
+ @startuml
8
+
9
+ skinparam roundcorner 20
10
+ skinparam sequence {
11
+
12
+ ParticipantBorderColor #875A7B
13
+ ParticipantBackgroundColor #875A7B
14
+ ParticipantFontSize 17
15
+ ParticipantFontColor white
16
+
17
+ LifeLineBorderColor #875A7B
18
+
19
+ ArrowColor #00A09D
20
+ }
21
+
22
+ header <img:oca_logo.png>
23
+ title <size:35>Single Pack Transfer scenario</size>
24
+
25
+ == /start ==
26
+ start -> scan_location: **/start**(barcode[pack|location], confirmation=False)
27
+ start -> start: **/start**(barcode[pack|location], confirmation=False)
28
+
29
+ == /cancel ==
30
+ scan_location -> start: **/cancel**(package_level_id)
31
+
32
+ == /validate ==
33
+ scan_location -> scan_location: **/validate**(package_level_id, location_barcode, confirmation=False)
34
+ scan_location -> start: **/validate**(package_level_id, location_barcode, confirmation=False)
35
+
36
+ @enduml