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,25 @@
1
+ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
+
4
+ from odoo import exceptions
5
+ from odoo.tests.common import TransactionCase
6
+
7
+ # pylint: disable=missing-return
8
+
9
+
10
+ class MiscTestCase(TransactionCase):
11
+ tracking_disable = True
12
+
13
+ @classmethod
14
+ def setUpClass(cls):
15
+ super().setUpClass()
16
+ cls.env = cls.env(
17
+ context=dict(cls.env.context, tracking_disable=cls.tracking_disable)
18
+ )
19
+
20
+ def test_package_name_unique(self):
21
+ create = self.env["stock.quant.package"].create
22
+ create({"name": "GOOD_NAME"})
23
+ with self.assertRaises(exceptions.UserError) as exc:
24
+ create({"name": "GOOD_NAME"})
25
+ self.assertEqual(exc.exception.args[0], "Package name must be unique!")
@@ -0,0 +1,87 @@
1
+ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
+
4
+ from .common import CommonCase
5
+
6
+ # pylint: disable=missing-return
7
+
8
+
9
+ class TestStockMoveActionAssign(CommonCase):
10
+ @classmethod
11
+ def setUpClassVars(cls, *args, **kwargs):
12
+ super().setUpClassVars(*args, **kwargs)
13
+ cls.wh = cls.env.ref("stock.warehouse0")
14
+
15
+ @classmethod
16
+ def setUpClassBaseData(cls, *args, **kwargs):
17
+ super().setUpClassBaseData(*args, **kwargs)
18
+ cls.wh.sudo().delivery_steps = "pick_pack_ship"
19
+
20
+ def test_action_assign_package_level(self):
21
+ """calling _action_assign on move does not erase lines' "result_package_id"
22
+
23
+ At the end of the method ``StockMove._action_assign()``, the method
24
+ ``StockPicking._check_entire_pack()`` is called. This method compares
25
+ the move lines with the quants of their source package, and if the entire
26
+ package is moved at once in the same transfer, a ``stock.package_level`` is
27
+ created. On creation of a ``stock.package_level``, the result package of
28
+ the move lines is directly updated with the entire package.
29
+
30
+ This is good on the first assign of the move, but when we call assign for
31
+ the second time on a move, for instance because it was made partially available
32
+ and we want to assign the remaining, it can override the result package we
33
+ selected before.
34
+
35
+ An override of ``StockPicking._check_move_lines_map_quant_package()`` ensures
36
+ that we ignore:
37
+
38
+ * picked lines (qty_done > 0)
39
+ * lines with a different result package already
40
+ """
41
+ package = self.env["stock.quant.package"].create({"name": "Src Pack"})
42
+ dest_package1 = self.env["stock.quant.package"].create({"name": "Dest Pack1"})
43
+
44
+ picking = self._create_picking(
45
+ picking_type=self.wh.pick_type_id, lines=[(self.product_a, 50)]
46
+ )
47
+ self._update_qty_in_location(
48
+ picking.location_id, self.product_a, 20, package=package
49
+ )
50
+ picking.action_assign()
51
+
52
+ self.assertEqual(picking.state, "assigned")
53
+ self.assertEqual(picking.package_level_ids.package_id, package)
54
+
55
+ move = picking.move_ids
56
+ line = move.move_line_ids
57
+
58
+ # we are no longer moving the entire package
59
+ line.qty_done = 20
60
+ line.result_package_id = dest_package1
61
+
62
+ # create remaining quantity
63
+ new_package = self.env["stock.quant.package"].create({"name": "New Pack"})
64
+ self._update_qty_in_location(
65
+ picking.location_id, self.product_a, 30, package=new_package
66
+ )
67
+
68
+ move._action_assign()
69
+ new_line = move.move_line_ids - line
70
+
71
+ # At the end of _action_assign(), StockPicking._check_entire_pack() is
72
+ # called, which, by default, look the sum of the move lines qties, and
73
+ # if they match a package, it:
74
+ #
75
+ # * creates a package level
76
+ # * updates all the move lines result package with the package,
77
+ # including the 'done' lines
78
+ #
79
+ # These checks ensure that we prevent this to happen if we already set
80
+ # a result package.
81
+ self.assertRecordValues(
82
+ line + new_line,
83
+ [
84
+ {"qty_done": 20, "result_package_id": dest_package1.id},
85
+ {"qty_done": 0, "result_package_id": new_package.id},
86
+ ],
87
+ )
@@ -0,0 +1,21 @@
1
+ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
+
4
+ from odoo.addons.shopfloor_base.tests.common_misc import OpenAPITestMixin
5
+
6
+ from .common import CommonCase
7
+
8
+ # pylint: disable=missing-return
9
+
10
+
11
+ class TestOpenAPICommonCase(CommonCase, OpenAPITestMixin):
12
+ @classmethod
13
+ def setUpClassVars(cls):
14
+ super().setUpClassVars()
15
+ # we don't really care about which menu and profile we use
16
+ # to read the OpenAPI specs
17
+ cls.menu = cls.env.ref("shopfloor.shopfloor_menu_demo_delivery")
18
+ cls.profile = cls.env.ref("shopfloor_base.profile_demo_1")
19
+
20
+ def test_openapi(self):
21
+ self._test_openapi(menu=self.menu, profile=self.profile)
@@ -0,0 +1,62 @@
1
+ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
+ from .common import CommonCase
4
+
5
+ # pylint: disable=missing-return
6
+
7
+
8
+ class PickingFormCase(CommonCase):
9
+ @classmethod
10
+ def setUpClassVars(cls, *args, **kwargs):
11
+ super().setUpClassVars(*args, **kwargs)
12
+ cls.menu = cls.env.ref("shopfloor.shopfloor_menu_demo_checkout")
13
+ cls.profile = cls.env.ref("shopfloor.profile_demo_1")
14
+ cls.picking_type = cls.menu.picking_type_ids
15
+ cls.wh = cls.picking_type.warehouse_id
16
+
17
+ @classmethod
18
+ def setUpClassBaseData(cls):
19
+ super().setUpClassBaseData()
20
+ cls.picking = cls._create_picking(lines=[(cls.product_a, 10)])
21
+
22
+ def setUp(self):
23
+ super().setUp()
24
+ self.service = self.get_service("form_edit_stock_picking", profile=self.profile)
25
+
26
+ def test_picking_form_get(self):
27
+ available_carriers = self.service._get_available_carriers(self.picking)
28
+ response = self.service.dispatch("get", self.picking.id)
29
+ self.assert_response(
30
+ response,
31
+ data={
32
+ "record": self.data_detail.picking_detail(self.picking),
33
+ "form": {
34
+ "carrier_id": {
35
+ "value": self.picking.carrier_id.id,
36
+ "select_options": available_carriers.jsonify(["id", "name"]),
37
+ }
38
+ },
39
+ },
40
+ )
41
+
42
+ def test_picking_form_update(self):
43
+ available_carriers = self.service._get_available_carriers(self.picking)
44
+ self.picking.carrier_id = available_carriers[0]
45
+ params = {"carrier_id": available_carriers[1].id}
46
+ response = self.service.dispatch("update", self.picking.id, params=params)
47
+ self.assert_response(
48
+ response,
49
+ data={
50
+ "record": self.data_detail.picking_detail(self.picking),
51
+ "form": {
52
+ "carrier_id": {
53
+ "value": self.picking.carrier_id.id,
54
+ "select_options": available_carriers.jsonify(["id", "name"]),
55
+ }
56
+ },
57
+ },
58
+ message=self.service._msg_record_updated(self.picking),
59
+ )
60
+ self.assertRecordValues(
61
+ self.picking, [{"carrier_id": available_carriers[1].id}]
62
+ )
@@ -0,0 +1,49 @@
1
+ # Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
2
+ # Copyright 2021 ACSONE SA/NV (http://www.acsone.eu)
3
+ # @author Simone Orsi <simahawk@gmail.com>
4
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
5
+
6
+ from odoo.addons.shopfloor_base.tests.common_misc import ScanAnythingTestMixin
7
+
8
+ from .test_actions_data_base import ActionsDataDetailCaseBase
9
+
10
+
11
+ class ScanAnythingCase(ActionsDataDetailCaseBase, ScanAnythingTestMixin):
12
+ def test_scan_product(self):
13
+ record = self.product_b
14
+ record.default_code = "PROD-B-code"
15
+ record.barcode = "PROD-B"
16
+ rec_type = "product"
17
+ identifier = record.barcode
18
+ data = self.data_detail.product_detail(record)
19
+ self._test_response_ok(rec_type, data, identifier)
20
+ identifier = record.default_code
21
+ self._test_response_ok(rec_type, data, identifier)
22
+
23
+ def test_scan_location(self):
24
+ record = self.stock_location
25
+ rec_type = "location"
26
+ identifier = record.barcode
27
+ data = self.data_detail.location_detail(record)
28
+ self._test_response_ok(rec_type, data, identifier)
29
+
30
+ def test_scan_package(self):
31
+ record = self.package
32
+ rec_type = "package"
33
+ identifier = record.name
34
+ data = self.data_detail.package_detail(record)
35
+ self._test_response_ok(rec_type, data, identifier)
36
+
37
+ def test_scan_lot(self):
38
+ record = self.lot
39
+ rec_type = "lot"
40
+ identifier = record.name
41
+ data = self.data_detail.lot_detail(record)
42
+ self._test_response_ok(rec_type, data, identifier)
43
+
44
+ def test_scan_transfer(self):
45
+ record = self.picking
46
+ rec_type = "transfer"
47
+ identifier = record.name
48
+ data = self.data_detail.picking_detail(record)
49
+ self._test_response_ok(rec_type, data, identifier)