odoo-addon-shopfloor 16.0.2.5.0.2__py3-none-any.whl → 16.0.2.7.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.
Files changed (24) hide show
  1. odoo/addons/shopfloor/README.rst +1 -1
  2. odoo/addons/shopfloor/__manifest__.py +1 -1
  3. odoo/addons/shopfloor/actions/message.py +50 -5
  4. odoo/addons/shopfloor/actions/stock_unreserve.py +11 -4
  5. odoo/addons/shopfloor/i18n/shopfloor.pot +35 -13
  6. odoo/addons/shopfloor/services/checkout.py +129 -105
  7. odoo/addons/shopfloor/services/cluster_picking.py +24 -8
  8. odoo/addons/shopfloor/services/delivery.py +89 -64
  9. odoo/addons/shopfloor/services/location_content_transfer.py +34 -18
  10. odoo/addons/shopfloor/services/service.py +52 -15
  11. odoo/addons/shopfloor/services/zone_picking.py +13 -9
  12. odoo/addons/shopfloor/static/description/index.html +1 -1
  13. odoo/addons/shopfloor/tests/test_checkout_scan.py +11 -3
  14. odoo/addons/shopfloor/tests/test_checkout_scan_line.py +35 -4
  15. odoo/addons/shopfloor/tests/test_checkout_select.py +3 -1
  16. odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination_no_prefill_qty.py +6 -4
  17. odoo/addons/shopfloor/tests/test_delivery_scan_deliver.py +143 -1
  18. odoo/addons/shopfloor/tests/test_delivery_set_qty_done_line.py +1 -1
  19. odoo/addons/shopfloor/tests/test_delivery_set_qty_done_pack.py +1 -1
  20. odoo/addons/shopfloor/tests/test_location_content_transfer_start.py +24 -1
  21. {odoo_addon_shopfloor-16.0.2.5.0.2.dist-info → odoo_addon_shopfloor-16.0.2.7.0.dist-info}/METADATA +2 -2
  22. {odoo_addon_shopfloor-16.0.2.5.0.2.dist-info → odoo_addon_shopfloor-16.0.2.7.0.dist-info}/RECORD +24 -24
  23. {odoo_addon_shopfloor-16.0.2.5.0.2.dist-info → odoo_addon_shopfloor-16.0.2.7.0.dist-info}/WHEEL +0 -0
  24. {odoo_addon_shopfloor-16.0.2.5.0.2.dist-info → odoo_addon_shopfloor-16.0.2.7.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,5 @@
1
1
  # Copyright 2020 Camptocamp SA (http://www.camptocamp.com)
2
+ # Copyright 2024 Michael Tietz (MT Software) <mtietz@mt-software.de>
2
3
  # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
3
4
 
4
5
  from .test_cluster_picking_base import ClusterPickingCommonCase
@@ -78,15 +79,16 @@ class ClusterPickingScanDestinationPackPrefillQtyCase(ClusterPickingCommonCase):
78
79
  )
79
80
  # Ensure the qty has not changed.
80
81
  self.assertEqual(line.qty_done, previous_qty_done)
81
-
82
+ new_move_line = self.env["stock.move.line"].search(
83
+ [("move_id", "=", line.move_id.id), ("id", ">", line.id)]
84
+ )
85
+ self.assertFalse(new_move_line)
82
86
  expected_qty_done = qty_done
83
87
  self.assert_response(
84
88
  response,
85
89
  next_state="scan_destination",
86
90
  data=self._line_data(line, qty_done=expected_qty_done),
87
- message=self.service.msg_store.bin_not_found_for_barcode(
88
- self.product_b.barcode
89
- ),
91
+ message=self.service.msg_store.wrong_record(self.product_b),
90
92
  )
91
93
 
92
94
  def test_scan_destination_pack_increment_with_packaging(self):
@@ -12,6 +12,20 @@ class DeliveryScanDeliverCase(DeliveryCommonCase):
12
12
  @classmethod
13
13
  def setUpClassBaseData(cls):
14
14
  super().setUpClassBaseData()
15
+ cls.out_location = cls.env.ref("stock.stock_location_output")
16
+ cls.cleanup_type = (
17
+ cls.env["stock.picking.type"]
18
+ .sudo()
19
+ .create(
20
+ {
21
+ "name": "Cancel Cleanup",
22
+ "default_location_src_id": cls.out_location.id,
23
+ "default_location_dest_id": cls.stock_location.id,
24
+ "sequence_code": "CCP",
25
+ "code": "internal",
26
+ }
27
+ )
28
+ )
15
29
  cls.product_e.tracking = "lot"
16
30
  cls.picking = picking = cls._create_picking(
17
31
  lines=[
@@ -447,6 +461,134 @@ class DeliveryScanDeliverCase(DeliveryCommonCase):
447
461
  move_lines = pick.move_ids.mapped("move_line_ids")
448
462
  self._test_scan_set_done_ok(move_lines, self.product_c.barcode, [1])
449
463
 
464
+ def test_scan_deliver_picking_canceled(self):
465
+ self.picking.action_cancel()
466
+ params = {"barcode": self.picking.name}
467
+ response = self.service.dispatch("scan_deliver", params=params)
468
+ self.assert_response_deliver(
469
+ response,
470
+ message=self.service.msg_store.transfer_canceled(),
471
+ )
472
+
473
+ def test_scan_deliver_return_partial_package(self):
474
+ move_a = self.picking.move_ids.filtered(
475
+ lambda m: m.product_id == self.product_a
476
+ )
477
+ move_a._action_cancel()
478
+ cleanup_picking = self._create_picking(
479
+ picking_type=self.cleanup_type, lines=[(self.product_a, 1)]
480
+ )
481
+ package_vals = [(self.product_a, 1, None)]
482
+ cleanup_package = self._create_package_in_location(
483
+ cleanup_picking.location_id, package_vals
484
+ )
485
+ cleanup_package.name = "CLEANUP_PACKAGE"
486
+ cleanup_picking.action_assign()
487
+ cleanup_picking.move_line_ids.package_id = cleanup_package
488
+ params = {"barcode": "CLEANUP_PACKAGE"}
489
+ response = self.service.dispatch("scan_deliver", params=params)
490
+ type_name = cleanup_picking.picking_type_id.name
491
+ pick_name = cleanup_picking.name
492
+ expected_body = f"Reserved for {type_name} {pick_name}"
493
+ self.assertEqual(response.get("message").get("body"), expected_body)
494
+
495
+ def test_scan_deliver_return_package(self):
496
+ self.picking.action_cancel()
497
+ cleanup_picking = self._create_picking(
498
+ picking_type=self.cleanup_type, lines=[(self.product_a, 1)]
499
+ )
500
+ package_vals = [(self.product_a, 1, None)]
501
+ cleanup_package = self._create_package_in_location(
502
+ cleanup_picking.location_id, package_vals
503
+ )
504
+ cleanup_package.name = "CLEANUP_PACKAGE"
505
+ cleanup_picking.action_assign()
506
+ cleanup_picking.move_line_ids.package_id = cleanup_package
507
+ params = {"barcode": "CLEANUP_PACKAGE"}
508
+ response = self.service.dispatch("scan_deliver", params=params)
509
+ type_name = cleanup_picking.picking_type_id.name
510
+ pick_name = cleanup_picking.name
511
+ expected_body = f"Reserved for {type_name} {pick_name}"
512
+ self.assertEqual(response.get("message").get("body"), expected_body)
513
+
514
+ def test_scan_deliver_return_product(self):
515
+ self.picking.action_cancel()
516
+ cleanup_picking = self._create_picking(
517
+ picking_type=self.cleanup_type, lines=[(self.product_a, 1)]
518
+ )
519
+ cleanup_picking.action_assign()
520
+ params = {"barcode": self.product_a.barcode}
521
+ response = self.service.dispatch("scan_deliver", params=params)
522
+ type_name = cleanup_picking.picking_type_id.name
523
+ pick_name = cleanup_picking.name
524
+ expected_body = f"Reserved for {type_name} {pick_name}"
525
+ self.assertEqual(response.get("message").get("body"), expected_body)
526
+
527
+ def test_scan_deliver_return_packaging(self):
528
+ self.picking.action_cancel()
529
+ cleanup_picking = self._create_picking(
530
+ picking_type=self.cleanup_type,
531
+ lines=[(self.product_a, 1)],
532
+ )
533
+ cleanup_picking.action_assign()
534
+
535
+ packaging_model = self.env["product.packaging"].sudo()
536
+ packaging_model.create(
537
+ {
538
+ "name": "CLEANUP PACKAGING",
539
+ "product_id": self.product_a.id,
540
+ "qty": 1,
541
+ "product_uom_id": self.product_a.id,
542
+ "barcode": "CLEANUP_PACKAGING",
543
+ }
544
+ )
545
+ params = {"barcode": "CLEANUP_PACKAGING"}
546
+ response = self.service.dispatch("scan_deliver", params=params)
547
+ type_name = cleanup_picking.picking_type_id.name
548
+ pick_name = cleanup_picking.name
549
+ expected_body = f"Reserved for {type_name} {pick_name}"
550
+ self.assertEqual(response.get("message").get("body"), expected_body)
551
+
552
+ def test_scan_deliver_return_lot(self):
553
+ self.picking.action_cancel()
554
+ cleanup_picking = self._create_picking(
555
+ picking_type=self.cleanup_type, lines=[(self.product_a, 1)]
556
+ )
557
+ # Create move lines and set lot
558
+ cleanup_picking.action_assign()
559
+ cleanup_lot = self.env["stock.lot"].create(
560
+ {
561
+ "product_id": self.product_a.id,
562
+ "company_id": self.env.company.id,
563
+ "name": "CLEANUP_LOT",
564
+ "ref": "CLEANUP_LOT",
565
+ }
566
+ )
567
+ # Re-force qty to 1, as setting the lot resets qty to 0
568
+ cleanup_picking.move_line_ids.lot_id = cleanup_lot
569
+ cleanup_picking.move_line_ids.reserved_uom_qty = 1.0
570
+ params = {"barcode": "CLEANUP_LOT"}
571
+ response = self.service.dispatch("scan_deliver", params=params)
572
+ type_name = cleanup_picking.picking_type_id.name
573
+ pick_name = cleanup_picking.name
574
+ expected_body = f"Reserved for {type_name} {pick_name}"
575
+ self.assertEqual(response.get("message").get("body"), expected_body)
576
+
577
+ def test_scan_delivery_return_picking(self):
578
+ self.picking.action_cancel()
579
+ cleanup_picking = self._create_picking(
580
+ picking_type=self.cleanup_type, lines=[(self.product_c, 1)]
581
+ )
582
+ cleanup_picking.action_assign()
583
+ params = {"barcode": cleanup_picking.name}
584
+ response = self.service.dispatch("scan_deliver", params=params)
585
+ self.assert_response_deliver(
586
+ response,
587
+ message=self.service.msg_store.reserved_for_other_picking_type(
588
+ cleanup_picking
589
+ ),
590
+ )
591
+
450
592
  def test_scan_deliver_picking_done(self):
451
593
  # Set qty done for all lines (packages/raw product/lot...), picking is
452
594
  # automatically set to done when the last line is completed
@@ -525,7 +667,7 @@ class DeliveryScanDeliverSpecialCase(DeliveryCommonCase):
525
667
  response,
526
668
  message={
527
669
  "message_type": "error",
528
- "body": "You cannot move this using this menu.",
670
+ "body": f"Reserved for {picking.picking_type_id.name} {picking.name}",
529
671
  },
530
672
  )
531
673
 
@@ -52,7 +52,7 @@ class DeliverySetQtyDoneLineCase(DeliveryCommonCase):
52
52
  )
53
53
  self.assert_response_deliver(
54
54
  response,
55
- message=self.service.msg_store.stock_picking_not_available(self.picking),
55
+ message=self.service.msg_store.transfer_canceled(),
56
56
  )
57
57
 
58
58
  def test_set_qty_done_line_line_not_found(self):
@@ -67,7 +67,7 @@ class DeliverySetQtyDonePackCase(DeliveryCommonCase):
67
67
  )
68
68
  self.assert_response_deliver(
69
69
  response,
70
- message=self.service.msg_store.stock_picking_not_available(self.picking),
70
+ message=self.service.msg_store.transfer_canceled(),
71
71
  )
72
72
 
73
73
  def test_set_qty_done_pack_package_not_found(self):
@@ -275,6 +275,29 @@ class LocationContentTransferStartSpecialCase(LocationContentTransferCommonCase)
275
275
  message=self.service.msg_store.location_empty(self.content_loc),
276
276
  )
277
277
 
278
+ def test_scan_location_picking_already_started(self):
279
+ self.menu.sudo().allow_unreserve_other_moves = True
280
+ picking = self._create_picking(
281
+ picking_type=self.menu.picking_type_ids,
282
+ lines=[(self.product_a, 10), (self.product_b, 10)],
283
+ )
284
+ self._fill_stock_for_moves(
285
+ picking.move_ids, in_package=True, location=self.content_loc
286
+ )
287
+ picking.action_assign()
288
+ picking.move_line_ids[0].qty_done = 10
289
+ response = self.service.dispatch(
290
+ "scan_location", params={"barcode": self.content_loc.barcode}
291
+ )
292
+ self.assert_response_start(
293
+ response,
294
+ message=self.service.msg_store.picking_already_started_in_location(picking),
295
+ )
296
+ # check that the original moves are still assigned
297
+ self.assertRecordValues(
298
+ picking.move_ids, [{"state": "assigned"}, {"state": "assigned"}]
299
+ )
300
+
278
301
  def test_scan_location_wrong_picking_type_allow_unreserve_error(self):
279
302
  """Content has different picking type than menu, option to unreserve
280
303
 
@@ -298,7 +321,7 @@ class LocationContentTransferStartSpecialCase(LocationContentTransferCommonCase)
298
321
  )
299
322
  self.assert_response_start(
300
323
  response,
301
- message=self.service.msg_store.picking_already_started_in_location(picking),
324
+ message=self.service.msg_store.reserved_for_other_picking_type(picking),
302
325
  )
303
326
  # check that the original moves are still assigned
304
327
  self.assertRecordValues(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-shopfloor
3
- Version: 16.0.2.5.0.2
3
+ Version: 16.0.2.7.0
4
4
  Summary: manage warehouse operations with barcode scanners
5
5
  Home-page: https://github.com/OCA/wms
6
6
  Author: Camptocamp, BCIM, Akretion, Odoo Community Association (OCA)
@@ -36,7 +36,7 @@ Shopfloor
36
36
  !! This file is generated by oca-gen-addon-readme !!
37
37
  !! changes will be overwritten. !!
38
38
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
39
- !! source digest: sha256:86239aacdfa7d7810aca5b0625ebd9112b12385d98899ac696d596b455b0c57d
39
+ !! source digest: sha256:986a6c228f6ee438330907a4be64b74f7291bb1acfc6498a2617ed5e69777d9e
40
40
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
41
41
 
42
42
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -1,6 +1,6 @@
1
- odoo/addons/shopfloor/README.rst,sha256=ABVzU954zlAGxtjdMbnky8zuB3EvFs29Q2cyxBfRYB8,5318
1
+ odoo/addons/shopfloor/README.rst,sha256=UFu-QQsuQm1ppFjEDrw1CK0j9aPi-dJSe3F929iS6cA,5318
2
2
  odoo/addons/shopfloor/__init__.py,sha256=ke3RmZ7XkX-lz4S8NHAxNIEJ5_Nvj5bjBAqD-W-q73c,91
3
- odoo/addons/shopfloor/__manifest__.py,sha256=pVpAMjaFsljMLhAcIlbsTkgoN1WoPPMGTAQl6i_OhV0,2245
3
+ odoo/addons/shopfloor/__manifest__.py,sha256=RjIcWIvURSPlexMMtSn_y7oXmLvwJVuQbWtls2iGVcQ,2245
4
4
  odoo/addons/shopfloor/exceptions.py,sha256=81KpIGVkuYRhA0cIuml4pg4G3izqkAAhLqoXZbUd4X8,197
5
5
  odoo/addons/shopfloor/utils.py,sha256=Be7J8Tu7ivOW4lpe8IjKxwqfTwfmK-ZkeFEavoYIIF4,375
6
6
  odoo/addons/shopfloor/actions/__init__.py,sha256=_yTf-NtaJmSylBJIoJJvKNYEI-wlqpyRw-S5eJRRzEM,400
@@ -10,7 +10,7 @@ odoo/addons/shopfloor/actions/data.py,sha256=ASj6VdLrkzJD6jTWsbKQ4LNZ_x2NU4BaXH_
10
10
  odoo/addons/shopfloor/actions/data_detail.py,sha256=eVW5oOpl5Tkwkpb0he0Xj_PHLRS8LkOa5VOI2w5R2Zo,8752
11
11
  odoo/addons/shopfloor/actions/inventory.py,sha256=Slg1hcV-kMb1jWHHu0VmYvQ9C0uqXtUAwAmHJUTE1zo,5976
12
12
  odoo/addons/shopfloor/actions/location_content_transfer_sorter.py,sha256=xpzea-w4zFrmpudQK3omRpZVhJdEIVQLXnuImkaZf5A,3110
13
- odoo/addons/shopfloor/actions/message.py,sha256=SjSQJLsD8x83r8xpfhRVAPiinb2fdJqeqXQZaphteT0,31356
13
+ odoo/addons/shopfloor/actions/message.py,sha256=6jP5q_4cq2lV1OOAVbyKBKExGa3C9raO9OcSd2vFRww,32832
14
14
  odoo/addons/shopfloor/actions/move_line_search.py,sha256=2G2NkxQ__JlvlhTQv8CQT1Kh94BDm49APTwbh_Hr-ZA,7795
15
15
  odoo/addons/shopfloor/actions/packaging.py,sha256=uZxD1bisNS_8M5ZQAHuOz2MR6l26XHR4VZY7QgA69Zs,2662
16
16
  odoo/addons/shopfloor/actions/savepoint.py,sha256=Tmqgh1k16x7L0ZSxVz9yNqIGLAyA7vFb5FWpLrb_GTI,1151
@@ -18,7 +18,7 @@ odoo/addons/shopfloor/actions/schema.py,sha256=r7CLlzmcHRcaKL0_qQBUeMiDrxbIwYfQB
18
18
  odoo/addons/shopfloor/actions/schema_detail.py,sha256=_xtm8ptRXAPBIMTyr8XKMQtogcjBudh-QRqKUZEEHGU,4968
19
19
  odoo/addons/shopfloor/actions/search.py,sha256=ai-pLBLWiDjKYlZ2uWZQG6PeB2jBj5-1D34XjELaXMY,6851
20
20
  odoo/addons/shopfloor/actions/stock.py,sha256=i3Y9j-lf8gWVmj2ItBNurZ05wGtLM7QusfX7eGgruP8,10762
21
- odoo/addons/shopfloor/actions/stock_unreserve.py,sha256=LoFd9hzeNlTQEn0-FN3N4xWLSo1uuiw5E394OEPHm-Y,2720
21
+ odoo/addons/shopfloor/actions/stock_unreserve.py,sha256=P0a9V53MqG4sDln8yX0Id-nEXz7cydiFY_BBznioQpg,3090
22
22
  odoo/addons/shopfloor/components/__init__.py,sha256=a3ox1WOD1JhrQUrYMRn-yDJI0Vvc7ciKdmXuZB29ToU,173
23
23
  odoo/addons/shopfloor/components/scan_handler_location.py,sha256=LImiaG4L4xBKUFWZLSnJV-eSCvj_NCDCM5GqZSnsPmE,825
24
24
  odoo/addons/shopfloor/components/scan_handler_lot.py,sha256=adzigHMfdqrK2P286OzABEZ_HMkW4pDpjR_v73gon-s,785
@@ -48,7 +48,7 @@ odoo/addons/shopfloor/i18n/de.po,sha256=H4dTHi99hBkkZ-frrKbLgYcWML31Bt5tn0OZrTXp
48
48
  odoo/addons/shopfloor/i18n/es_AR.po,sha256=-rX-_qyNaecxwtCEwhVwllJBVmk3jFbPZ-E3ekyfq34,81785
49
49
  odoo/addons/shopfloor/i18n/it.po,sha256=DpAb1_s9S-U4Gj8oEx-vuUchNnq-Jn8GNn9X4j5lkvE,83240
50
50
  odoo/addons/shopfloor/i18n/pt_BR.po,sha256=h-swd3FV35x-Cn7RbVs1V4e56b2fu6G-j89QI3udbBI,59344
51
- odoo/addons/shopfloor/i18n/shopfloor.pot,sha256=OqD3th-CyEFBoex2gI_qww6S0R-3I0GA6opD0fafA_k,59334
51
+ odoo/addons/shopfloor/i18n/shopfloor.pot,sha256=MK0wLtiBEv0eXfStAS1ACSeAD7S4W-Qrwy4VHjuT7-Q,59855
52
52
  odoo/addons/shopfloor/migrations/16.0.2.0.0/post-migration.py,sha256=WfXnS5fj_K78VFaUAe0UiNhFX1C8LA0lkh6Zofllvc4,1311
53
53
  odoo/addons/shopfloor/migrations/16.0.2.4.2/post-init_search_move_line_options.py,sha256=OfsDBUUEKtWQOv9pU86edeFlnT2YiPli4PMpv74Q8IY,1176
54
54
  odoo/addons/shopfloor/migrations/16.0.2.4.2/post-migration.py,sha256=wU-NTy1RLF6iSndiH6jzzIHIlPfX1DBUeB94QpB7TU4,909
@@ -73,19 +73,19 @@ odoo/addons/shopfloor/readme/ROADMAP.rst,sha256=jIuyexuxAbyDWBPfoHzWU57KLUto6z56
73
73
  odoo/addons/shopfloor/readme/USAGE.rst,sha256=6Of9b6ec7gH1SKhdpBIaavsON0JWBFAzhb8KNz7Nmhc,308
74
74
  odoo/addons/shopfloor/security/groups.xml,sha256=hdLqRUZM_4RQnleinRYhxDxqW4VOI5li4oTsB7m96LQ,578
75
75
  odoo/addons/shopfloor/services/__init__.py,sha256=4lhF0VNx8QosVEZj9QJYgv6oWD0kl9FX80rL5WMrXf4,303
76
- odoo/addons/shopfloor/services/checkout.py,sha256=GbkSbmpgYzdBhYw-k2iqCHUHr9P5sJJDKkxddqmcR0k,79693
77
- odoo/addons/shopfloor/services/cluster_picking.py,sha256=v3UduBo5iIUW85nP7JtNFAsFr3LmePvGSK-DXvn_WYI,68221
78
- odoo/addons/shopfloor/services/delivery.py,sha256=ko2xre3q-P2LaGd4CMKFWJoavk9QXTI8WKXghf8PoL0,33226
79
- odoo/addons/shopfloor/services/location_content_transfer.py,sha256=gn-8W_u2tFT-A69Cot8B6CKG6pFB_21EjC2MYisfDME,49472
76
+ odoo/addons/shopfloor/services/checkout.py,sha256=rZS28b9946Dqv_OZO_woBWfUcfIgEeQJds--5AvPbnQ,82114
77
+ odoo/addons/shopfloor/services/cluster_picking.py,sha256=lpAzEDtByYSgZCkZvScYKULe8hlsliZH9A1UMQAd5mw,68729
78
+ odoo/addons/shopfloor/services/delivery.py,sha256=QnV6_UGGxZbpe6l69dsd_dnMGxeSXCD5xlyRaAwd_F4,34466
79
+ odoo/addons/shopfloor/services/location_content_transfer.py,sha256=8jyIpnkSiQTdNQR-rguL5MDys4wlo-iUDeHhaivRkdY,50334
80
80
  odoo/addons/shopfloor/services/menu.py,sha256=m1eNOReTda_xD-p-m8k2Pn5cJQOLWTiaBGW46zxsYsk,2354
81
81
  odoo/addons/shopfloor/services/picking_batch.py,sha256=w51R5HHkQxCHle72k28VetXKfIRRh5GTaEXv6mhikvQ,4649
82
- odoo/addons/shopfloor/services/service.py,sha256=HuxZZQ5MxnvDtr89HWQW2muuPvEF4vjI9ArdSFeAxg8,4882
82
+ odoo/addons/shopfloor/services/service.py,sha256=OzLyH5fGjMnfFavk24WVETsS8oN9QxyimkInqUxR7K8,6439
83
83
  odoo/addons/shopfloor/services/single_pack_transfer.py,sha256=S9zZ027fclqUBvqqFHMnD1QcbUb_dYyCtWs1E4pOAV4,16120
84
- odoo/addons/shopfloor/services/zone_picking.py,sha256=9JMZNhSiwkw1DWIrBj1dquM-i1NaMzDdqbI_wuTgRjw,83806
84
+ odoo/addons/shopfloor/services/zone_picking.py,sha256=I_yZOR4Xn5loWTQi6Nm65PTb2ARzZNHk7LoU4GdiaUA,83960
85
85
  odoo/addons/shopfloor/services/forms/__init__.py,sha256=nxwJdKX47hb56ERf4Qb3UE5dkdsHCbkaXMAXs4XMAd8,27
86
86
  odoo/addons/shopfloor/services/forms/picking_form.py,sha256=F15G5yw78Pd1WgPjMz00-K1JyGaTdfdvVYzG4Dubpqk,2626
87
87
  odoo/addons/shopfloor/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
88
- odoo/addons/shopfloor/static/description/index.html,sha256=xtpdUahpJbHpGpJkDST1F39sl_EFXdNA0H7FPcF1kfI,17547
88
+ odoo/addons/shopfloor/static/description/index.html,sha256=DGFdkT1Dy6VBhzSrG4fMf0pw_21rHgPfa1MXfHAyNCs,17547
89
89
  odoo/addons/shopfloor/tests/__init__.py,sha256=4WHuLVjOX_lndDJyuyGcreNckArFJL2HA5PPFlhT6FM,3962
90
90
  odoo/addons/shopfloor/tests/common.py,sha256=v1C7DQT-MvTk81xIYyv--c1BaIpwbia2ey8s35nvrK4,11611
91
91
  odoo/addons/shopfloor/tests/models.py,sha256=jNbYUqYLxkbQMn4j8bejHM3l6CRThJBDfpATl8H83OM,939
@@ -106,14 +106,14 @@ odoo/addons/shopfloor/tests/test_checkout_list_delivery_packaging.py,sha256=zaVj
106
106
  odoo/addons/shopfloor/tests/test_checkout_list_package.py,sha256=OkwB0ztWf8AIv49O61hlFOkVDnn4HPO3IrHtST5S-3g,12410
107
107
  odoo/addons/shopfloor/tests/test_checkout_new_package.py,sha256=9zCyp4XKpBQNKs1irIVdwk_-9tcTL8Yh1PN9BDYbBKE,3412
108
108
  odoo/addons/shopfloor/tests/test_checkout_no_package.py,sha256=xqMIvU4VTgtLcwD4pQ8NJftae-KzUh6TnyLnfd6OCNw,3642
109
- odoo/addons/shopfloor/tests/test_checkout_scan.py,sha256=ewJaKbiNXIW7PdAvMgqEOBabncnU90xrNUIjGNKcQXY,8286
109
+ odoo/addons/shopfloor/tests/test_checkout_scan.py,sha256=kIuhtY8LMC_Z4M_b2xYXybPKcuUl7k8QbJ2z6LuLA5I,8499
110
110
  odoo/addons/shopfloor/tests/test_checkout_scan_dest_location.py,sha256=Ikykp7F0zS9qC6f6SbiglKDDI2Q6LFE-1RWuVqlvyN0,3351
111
- odoo/addons/shopfloor/tests/test_checkout_scan_line.py,sha256=xPi4OGvcdFuhUetlrxnbBPs4Wa9XpWrSFDwHQ82579A,16860
111
+ odoo/addons/shopfloor/tests/test_checkout_scan_line.py,sha256=zgxf6Ga_l9dQ17jAy6cxw_X29xNyAViAH84LPdzquz4,18171
112
112
  odoo/addons/shopfloor/tests/test_checkout_scan_line_base.py,sha256=QsNHemN4xwgxuS604qIH85wZpTxjhWWu5c7RaupDbag,976
113
113
  odoo/addons/shopfloor/tests/test_checkout_scan_line_no_prefill_qty.py,sha256=v_EiDaEBQbII_CWqiR-c9uKOLEgyK0TrKnOSnBSiFpo,5550
114
114
  odoo/addons/shopfloor/tests/test_checkout_scan_package_action.py,sha256=W-jP5PnAHqHIjTknBiwVADKI4gy-lUQEyWTrXN67lJA,17746
115
115
  odoo/addons/shopfloor/tests/test_checkout_scan_package_action_no_prefill_qty.py,sha256=VcB0qp7A5IwGnjfDVoMjGjlF1fD9SxNMB800j6lmQlY,4411
116
- odoo/addons/shopfloor/tests/test_checkout_select.py,sha256=spxugnVTK4CGXEm7vSBbZtOwXXNLeCaT22uaKrA6Jho,2809
116
+ odoo/addons/shopfloor/tests/test_checkout_select.py,sha256=Jf06NZZE9gMZNlvWkuo_30-hKS9OjgkpFdMRRQhSzhU,2934
117
117
  odoo/addons/shopfloor/tests/test_checkout_select_line.py,sha256=p2cqGIyW52tu9exMGaxE_0usQr7nwpJyprUN6AI9kQc,5001
118
118
  odoo/addons/shopfloor/tests/test_checkout_select_package_base.py,sha256=94YUs4z2mJoQE984tfrIPbmrn_3FbRVnI2eOY1PVzcY,2529
119
119
  odoo/addons/shopfloor/tests/test_checkout_set_qty.py,sha256=Wr5GesbmA6KLRm0aseIOzm3qgONqJkqkuKNrd35wTuI,9572
@@ -123,7 +123,7 @@ odoo/addons/shopfloor/tests/test_cluster_picking_batch.py,sha256=uqNDKYFi2T8fwdW
123
123
  odoo/addons/shopfloor/tests/test_cluster_picking_change_pack_lot.py,sha256=S2fUP545A3TO6xWYFyHvDi4sNnb4UgyTNghUfbQ_TZw,4157
124
124
  odoo/addons/shopfloor/tests/test_cluster_picking_is_zero.py,sha256=VsNhviyfg6uRA6dM6Sv2H2TNBA7_RjEnoJWtvQ9SkHw,3496
125
125
  odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination.py,sha256=ypirEJupF_sdn-nUxXfG2SCkS9LLb8dheYQHCxEbP8k,14381
126
- odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination_no_prefill_qty.py,sha256=XthQeJ2RotcwglQseheeaHOuVl-q28Efo0oMy8k3byc,4267
126
+ odoo/addons/shopfloor/tests/test_cluster_picking_scan_destination_no_prefill_qty.py,sha256=hboVxHXNFqZ0DDTBqUBW9r6Dq428Vq5uj7fgaGIdPAg,4464
127
127
  odoo/addons/shopfloor/tests/test_cluster_picking_scan_line.py,sha256=urAU4AhLX-GCcXqpJEG-mbiy63lXwzbtf4J5jZ-IiaA,15410
128
128
  odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_location_or_pack_first.py,sha256=Gsqq0vOjCg14G5ABk9KbVdZpqYX8SHCzhh-JxuOI0Nk,4440
129
129
  odoo/addons/shopfloor/tests/test_cluster_picking_scan_line_no_prefill_qty.py,sha256=xf2QXXovehcbvmuTek20qbDP4gUiLgPpw8XkFNN3Cds,2905
@@ -136,10 +136,10 @@ odoo/addons/shopfloor/tests/test_delivery_done.py,sha256=3aT3DVy6AQNy997223-mB1J
136
136
  odoo/addons/shopfloor/tests/test_delivery_list_stock_picking.py,sha256=g-oaXqQofQ8txnOmjt1WCogROhALNARHiZAgMTqXHt0,1922
137
137
  odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_line.py,sha256=NWdmk8LN6z_2dC-tr6k4lqKbEZLSyosny9U0wr9b65g,4778
138
138
  odoo/addons/shopfloor/tests/test_delivery_reset_qty_done_pack.py,sha256=13SuIQtVy9cXjzED_dvEcaq0kL-I_EllTQXnyOOiMhk,4329
139
- odoo/addons/shopfloor/tests/test_delivery_scan_deliver.py,sha256=xSXmWWas5LL0j7wY9H48O0wAskO5dbgn0fksxenMYGw,23203
139
+ odoo/addons/shopfloor/tests/test_delivery_scan_deliver.py,sha256=JQFZ9Bdnz14ByhHiRFHOStNlTy7Sulz7-v9fQEoIcTY,29283
140
140
  odoo/addons/shopfloor/tests/test_delivery_select.py,sha256=eMwTik3yQIfh7bci8B-jrqoRJ_82I6tAHLZ4cNUoUyM,1292
141
- odoo/addons/shopfloor/tests/test_delivery_set_qty_done_line.py,sha256=WOwsAV0qeg8Vd-EANcxthb9KtLtB37faU7_81UcxCxU,3493
142
- odoo/addons/shopfloor/tests/test_delivery_set_qty_done_pack.py,sha256=AILsmgkx4QSRzu4C281DkMKBSy_vqg-pUzu7ytYYgfY,5387
141
+ odoo/addons/shopfloor/tests/test_delivery_set_qty_done_line.py,sha256=tvheGATSU1cdCmcB21xfy5cJ0Nk4CCV0Y3HOiz99bqk,3471
142
+ odoo/addons/shopfloor/tests/test_delivery_set_qty_done_pack.py,sha256=zsDppjjsIXHQwyYjlZAF5X-w3vtySco2XKAvo3YU8jE,5365
143
143
  odoo/addons/shopfloor/tests/test_delivery_sublocation.py,sha256=UsjtvjRNU1qNTuXpcZyAcBhFHZcj-0IoviIl4a7D1_4,6301
144
144
  odoo/addons/shopfloor/tests/test_location_content_transfer_base.py,sha256=zKwOr-pVEFLxMO6DCiVn6q6d9F9gU3OemJ1Zid1T63A,6837
145
145
  odoo/addons/shopfloor/tests/test_location_content_transfer_get_work.py,sha256=G4laNv5FDP4wfqLhawkdRRm9LOzunr1jo0HImWiKZfk,6466
@@ -149,7 +149,7 @@ odoo/addons/shopfloor/tests/test_location_content_transfer_scan_location.py,sha2
149
149
  odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_all.py,sha256=cMiwpGMzsITHE0HYQLqzqtTX5_i8p5sPRG39H56Xj1Q,14276
150
150
  odoo/addons/shopfloor/tests/test_location_content_transfer_set_destination_package_or_line.py,sha256=vzIOXd7pdY016raUJQBykiAhWZJTP4TMvqqJEXcAHe0,44794
151
151
  odoo/addons/shopfloor/tests/test_location_content_transfer_single.py,sha256=JO8huthUh-qLhXUi14LzrnN5gnr46-8JlAid3MfHh3U,33385
152
- odoo/addons/shopfloor/tests/test_location_content_transfer_start.py,sha256=BzCpuJTia8YgjrPe0PjzmSOG8j9aBMGupj_yR_IbKMQ,14461
152
+ odoo/addons/shopfloor/tests/test_location_content_transfer_start.py,sha256=AuDBOVwSrPIoqGTta7GaZ3clACTvFia4MEwmxbg2H6M,15403
153
153
  odoo/addons/shopfloor/tests/test_menu_base.py,sha256=5gOKXU0eYTh_6YIV6EFJrhRasQ3Y7UnGYMlDr3EJZOc,9197
154
154
  odoo/addons/shopfloor/tests/test_menu_contrains.py,sha256=vyT7fye_-VjxO0oapM5nkygNcABoIxh3xCJ97dVZI8Q,1325
155
155
  odoo/addons/shopfloor/tests/test_menu_counters.py,sha256=RkfZYMjS8fQSz0QMsLB8nkciY7X6JN2KoL3MS93S2PI,6328
@@ -187,7 +187,7 @@ odoo/addons/shopfloor/views/shopfloor_menu.xml,sha256=gepRIcpP6xuYypagEfpJm1s9-A
187
187
  odoo/addons/shopfloor/views/stock_location.xml,sha256=d7iqbOQZbb5YPSdAXlQ6spcj8dUvQ37DpEGuaLX5B1M,829
188
188
  odoo/addons/shopfloor/views/stock_move_line.xml,sha256=tn3pV67aRoYmn3qkm3aSgdYArY-z9SIrl_4fpJFy3Jo,1984
189
189
  odoo/addons/shopfloor/views/stock_picking_type.xml,sha256=Ckn2835hO4HtuZQX9x3382C4gs789fb94Cx0444mBkc,800
190
- odoo_addon_shopfloor-16.0.2.5.0.2.dist-info/METADATA,sha256=ZMWUTGGoxrEM_NBWB11m3hT3xEetTLh0HOxDDxQpz50,6763
191
- odoo_addon_shopfloor-16.0.2.5.0.2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
192
- odoo_addon_shopfloor-16.0.2.5.0.2.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
193
- odoo_addon_shopfloor-16.0.2.5.0.2.dist-info/RECORD,,
190
+ odoo_addon_shopfloor-16.0.2.7.0.dist-info/METADATA,sha256=3jCPfZDf2OIgk6SpMw1gsgI9_LDtb-n9CyNMVjefgEQ,6761
191
+ odoo_addon_shopfloor-16.0.2.7.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
192
+ odoo_addon_shopfloor-16.0.2.7.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
193
+ odoo_addon_shopfloor-16.0.2.7.0.dist-info/RECORD,,