odoo-addon-stock-restrict-lot 16.0.1.2.0__py3-none-any.whl → 16.0.2.0.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.
Potentially problematic release.
This version of odoo-addon-stock-restrict-lot might be problematic. Click here for more details.
- odoo/addons/stock_restrict_lot/README.rst +1 -1
- odoo/addons/stock_restrict_lot/__manifest__.py +1 -1
- odoo/addons/stock_restrict_lot/i18n/es.po +14 -0
- odoo/addons/stock_restrict_lot/i18n/hr.po +16 -2
- odoo/addons/stock_restrict_lot/i18n/it.po +18 -2
- odoo/addons/stock_restrict_lot/i18n/stock_restrict_lot.pot +9 -0
- odoo/addons/stock_restrict_lot/models/stock_move.py +40 -2
- odoo/addons/stock_restrict_lot/models/stock_rule.py +7 -0
- odoo/addons/stock_restrict_lot/static/description/index.html +1 -1
- odoo/addons/stock_restrict_lot/tests/test_restrict_lot.py +82 -1
- {odoo_addon_stock_restrict_lot-16.0.1.2.0.dist-info → odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info}/METADATA +3 -3
- {odoo_addon_stock_restrict_lot-16.0.1.2.0.dist-info → odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info}/RECORD +14 -14
- {odoo_addon_stock_restrict_lot-16.0.1.2.0.dist-info → odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info}/WHEEL +1 -1
- {odoo_addon_stock_restrict_lot-16.0.1.2.0.dist-info → odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ Stock Restrict Lot
|
|
|
7
7
|
!! This file is generated by oca-gen-addon-readme !!
|
|
8
8
|
!! changes will be overwritten. !!
|
|
9
9
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
10
|
-
!! source digest: sha256:
|
|
10
|
+
!! source digest: sha256:e4d8f3bb250ff5fda392e534dabf98d1713d60b4458cfd22205d647818423aa7
|
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
12
|
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "Stock Restrict Lot",
|
|
3
3
|
"summary": "Base module that add back the concept of restrict lot on stock move",
|
|
4
|
-
"version": "16.0.
|
|
4
|
+
"version": "16.0.2.0.0",
|
|
5
5
|
"category": "Warehouse Management",
|
|
6
6
|
"website": "https://github.com/OCA/stock-logistics-workflow",
|
|
7
7
|
"author": "Akretion, Odoo Community Association (OCA)",
|
|
@@ -31,6 +31,11 @@ msgstr ""
|
|
|
31
31
|
msgid "Lot"
|
|
32
32
|
msgstr "Lote"
|
|
33
33
|
|
|
34
|
+
#. module: stock_restrict_lot
|
|
35
|
+
#: model:ir.model,name:stock_restrict_lot.model_product_product
|
|
36
|
+
msgid "Product Variant"
|
|
37
|
+
msgstr ""
|
|
38
|
+
|
|
34
39
|
#. module: stock_restrict_lot
|
|
35
40
|
#: model:ir.model.fields,field_description:stock_restrict_lot.field_stock_move__restrict_lot_id
|
|
36
41
|
#: model:ir.model.fields,field_description:stock_restrict_lot.field_stock_picking__restrict_lot_id
|
|
@@ -47,6 +52,15 @@ msgstr "Movimiento de Existencias"
|
|
|
47
52
|
msgid "Stock Rule"
|
|
48
53
|
msgstr "Regla de Existencias"
|
|
49
54
|
|
|
55
|
+
#. module: stock_restrict_lot
|
|
56
|
+
#. odoo-python
|
|
57
|
+
#: code:addons/stock_restrict_lot/models/stock_move.py:0
|
|
58
|
+
#, python-format
|
|
59
|
+
msgid ""
|
|
60
|
+
"The lot(s) %(move_line_lot)s being moved is inconsistent with the "
|
|
61
|
+
"restriction on lot %(move_restrict_lot)s set on the move"
|
|
62
|
+
msgstr ""
|
|
63
|
+
|
|
50
64
|
#. module: stock_restrict_lot
|
|
51
65
|
#: model:ir.model,name:stock_restrict_lot.model_stock_picking
|
|
52
66
|
msgid "Transfer"
|
|
@@ -13,8 +13,8 @@ msgstr ""
|
|
|
13
13
|
"MIME-Version: 1.0\n"
|
|
14
14
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
15
15
|
"Content-Transfer-Encoding: \n"
|
|
16
|
-
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 &&
|
|
17
|
-
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
|
16
|
+
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
|
17
|
+
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
|
18
18
|
"X-Generator: Weblate 4.17\n"
|
|
19
19
|
|
|
20
20
|
#. module: stock_restrict_lot
|
|
@@ -32,6 +32,11 @@ msgstr ""
|
|
|
32
32
|
msgid "Lot"
|
|
33
33
|
msgstr "Lot"
|
|
34
34
|
|
|
35
|
+
#. module: stock_restrict_lot
|
|
36
|
+
#: model:ir.model,name:stock_restrict_lot.model_product_product
|
|
37
|
+
msgid "Product Variant"
|
|
38
|
+
msgstr ""
|
|
39
|
+
|
|
35
40
|
#. module: stock_restrict_lot
|
|
36
41
|
#: model:ir.model.fields,field_description:stock_restrict_lot.field_stock_move__restrict_lot_id
|
|
37
42
|
#: model:ir.model.fields,field_description:stock_restrict_lot.field_stock_picking__restrict_lot_id
|
|
@@ -48,6 +53,15 @@ msgstr "Skladišno kretanje"
|
|
|
48
53
|
msgid "Stock Rule"
|
|
49
54
|
msgstr "Skladišno pravilo"
|
|
50
55
|
|
|
56
|
+
#. module: stock_restrict_lot
|
|
57
|
+
#. odoo-python
|
|
58
|
+
#: code:addons/stock_restrict_lot/models/stock_move.py:0
|
|
59
|
+
#, python-format
|
|
60
|
+
msgid ""
|
|
61
|
+
"The lot(s) %(move_line_lot)s being moved is inconsistent with the "
|
|
62
|
+
"restriction on lot %(move_restrict_lot)s set on the move"
|
|
63
|
+
msgstr ""
|
|
64
|
+
|
|
51
65
|
#. module: stock_restrict_lot
|
|
52
66
|
#: model:ir.model,name:stock_restrict_lot.model_stock_picking
|
|
53
67
|
msgid "Transfer"
|
|
@@ -6,7 +6,7 @@ msgid ""
|
|
|
6
6
|
msgstr ""
|
|
7
7
|
"Project-Id-Version: Odoo Server 16.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: \n"
|
|
9
|
-
"PO-Revision-Date:
|
|
9
|
+
"PO-Revision-Date: 2024-09-18 16:06+0000\n"
|
|
10
10
|
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
|
|
11
11
|
"Language-Team: none\n"
|
|
12
12
|
"Language: it\n"
|
|
@@ -14,7 +14,7 @@ msgstr ""
|
|
|
14
14
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
15
15
|
"Content-Transfer-Encoding: \n"
|
|
16
16
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
|
17
|
-
"X-Generator: Weblate
|
|
17
|
+
"X-Generator: Weblate 5.6.2\n"
|
|
18
18
|
|
|
19
19
|
#. module: stock_restrict_lot
|
|
20
20
|
#. odoo-python
|
|
@@ -31,6 +31,11 @@ msgstr ""
|
|
|
31
31
|
msgid "Lot"
|
|
32
32
|
msgstr "Lotto"
|
|
33
33
|
|
|
34
|
+
#. module: stock_restrict_lot
|
|
35
|
+
#: model:ir.model,name:stock_restrict_lot.model_product_product
|
|
36
|
+
msgid "Product Variant"
|
|
37
|
+
msgstr "Variante prodotto"
|
|
38
|
+
|
|
34
39
|
#. module: stock_restrict_lot
|
|
35
40
|
#: model:ir.model.fields,field_description:stock_restrict_lot.field_stock_move__restrict_lot_id
|
|
36
41
|
#: model:ir.model.fields,field_description:stock_restrict_lot.field_stock_picking__restrict_lot_id
|
|
@@ -47,6 +52,17 @@ msgstr "Movimento di magazzino"
|
|
|
47
52
|
msgid "Stock Rule"
|
|
48
53
|
msgstr "Regola di giacenza"
|
|
49
54
|
|
|
55
|
+
#. module: stock_restrict_lot
|
|
56
|
+
#. odoo-python
|
|
57
|
+
#: code:addons/stock_restrict_lot/models/stock_move.py:0
|
|
58
|
+
#, python-format
|
|
59
|
+
msgid ""
|
|
60
|
+
"The lot(s) %(move_line_lot)s being moved is inconsistent with the "
|
|
61
|
+
"restriction on lot %(move_restrict_lot)s set on the move"
|
|
62
|
+
msgstr ""
|
|
63
|
+
"Il lotto %(move_line_lot)s che si sta movimentando è inconsistente con la "
|
|
64
|
+
"restrizione sul lotto %(move_restrict_lot)s impostato nel movimento"
|
|
65
|
+
|
|
50
66
|
#. module: stock_restrict_lot
|
|
51
67
|
#: model:ir.model,name:stock_restrict_lot.model_stock_picking
|
|
52
68
|
msgid "Transfer"
|
|
@@ -60,3 +60,12 @@ msgstr ""
|
|
|
60
60
|
#: model:ir.model,name:stock_restrict_lot.model_stock_picking
|
|
61
61
|
msgid "Transfer"
|
|
62
62
|
msgstr ""
|
|
63
|
+
|
|
64
|
+
#. module: stock_restrict_lot
|
|
65
|
+
#. odoo-python
|
|
66
|
+
#: code:addons/stock_restrict_lot/models/stock_move.py:0
|
|
67
|
+
#, python-format
|
|
68
|
+
msgid ""
|
|
69
|
+
"You can't modify the Lot/Serial number because at least one move in the "
|
|
70
|
+
"chain has already been done with another Lot/Serial number."
|
|
71
|
+
msgstr ""
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
from odoo import _, api, exceptions, fields, models
|
|
2
|
-
from odoo.exceptions import UserError
|
|
2
|
+
from odoo.exceptions import UserError, ValidationError
|
|
3
|
+
from odoo.tools.misc import OrderedSet
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class StockMove(models.Model):
|
|
6
7
|
_inherit = "stock.move"
|
|
7
8
|
|
|
8
|
-
# seems better to not copy this field except when a move is
|
|
9
|
+
# seems better to not copy this field except when a move is split, because a move
|
|
9
10
|
# can be copied in multiple different occasions and could even be copied with a
|
|
10
11
|
# different product...
|
|
11
12
|
restrict_lot_id = fields.Many2one(
|
|
@@ -116,3 +117,40 @@ class StockMove(models.Model):
|
|
|
116
117
|
move_restrict_lot=move.restrict_lot_id.display_name,
|
|
117
118
|
)
|
|
118
119
|
)
|
|
120
|
+
|
|
121
|
+
# Same as _rollup_move_origs but also for "done" moves.
|
|
122
|
+
def _rollup_not_cancelled_move_origs(self, seen=False):
|
|
123
|
+
if not seen:
|
|
124
|
+
seen = OrderedSet()
|
|
125
|
+
for dst in self.move_orig_ids:
|
|
126
|
+
if dst.id not in seen and dst.state != "cancel":
|
|
127
|
+
seen.add(dst.id)
|
|
128
|
+
dst._rollup_move_origs(seen)
|
|
129
|
+
return seen
|
|
130
|
+
|
|
131
|
+
def write(self, vals):
|
|
132
|
+
if "restrict_lot_id" not in vals:
|
|
133
|
+
return super().write(vals)
|
|
134
|
+
else:
|
|
135
|
+
restrict_lot_id = vals.pop("restrict_lot_id")
|
|
136
|
+
restrict_lot = self.env["stock.lot"].browse(restrict_lot_id)
|
|
137
|
+
chained_moves = OrderedSet(self.ids)
|
|
138
|
+
self._rollup_move_dests(chained_moves)
|
|
139
|
+
self._rollup_not_cancelled_move_origs(chained_moves)
|
|
140
|
+
chained_moves = self.env["stock.move"].browse(chained_moves)
|
|
141
|
+
if any(
|
|
142
|
+
[
|
|
143
|
+
sm.state == "done" and sm.lot_ids and sm.lot_ids != restrict_lot
|
|
144
|
+
for sm in chained_moves
|
|
145
|
+
]
|
|
146
|
+
):
|
|
147
|
+
raise ValidationError(
|
|
148
|
+
_(
|
|
149
|
+
"You can't modify the Lot/Serial number "
|
|
150
|
+
"because at least one move in the chain has "
|
|
151
|
+
"already been done with another Lot/Serial number."
|
|
152
|
+
)
|
|
153
|
+
)
|
|
154
|
+
for move in chained_moves:
|
|
155
|
+
super(StockMove, move).write({"restrict_lot_id": restrict_lot_id})
|
|
156
|
+
return super().write(vals)
|
|
@@ -8,3 +8,10 @@ class StockRule(models.Model):
|
|
|
8
8
|
fields = super()._get_custom_move_fields()
|
|
9
9
|
fields += ["restrict_lot_id"]
|
|
10
10
|
return fields
|
|
11
|
+
|
|
12
|
+
def _push_prepare_move_copy_values(self, move_to_copy, new_date):
|
|
13
|
+
values = super()._push_prepare_move_copy_values(move_to_copy, new_date)
|
|
14
|
+
values["restrict_lot_id"] = (
|
|
15
|
+
move_to_copy.restrict_lot_id.id if move_to_copy.restrict_lot_id else False
|
|
16
|
+
)
|
|
17
|
+
return values
|
|
@@ -367,7 +367,7 @@ ul.auto-toc {
|
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
|
368
368
|
!! changes will be overwritten. !!
|
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
370
|
-
!! source digest: sha256:
|
|
370
|
+
!! source digest: sha256:e4d8f3bb250ff5fda392e534dabf98d1713d60b4458cfd22205d647818423aa7
|
|
371
371
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
372
372
|
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_restrict_lot"><img alt="OCA/stock-logistics-workflow" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-logistics-workflow-16-0/stock-logistics-workflow-16-0-stock_restrict_lot"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-workflow&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
373
|
<p>This module add a field to restrict a stock move to a specific lot.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from odoo.exceptions import UserError
|
|
1
|
+
from odoo.exceptions import UserError, ValidationError
|
|
2
2
|
from odoo.tests.common import TransactionCase
|
|
3
3
|
|
|
4
4
|
|
|
@@ -20,6 +20,50 @@ class TestRestrictLot(TransactionCase):
|
|
|
20
20
|
}
|
|
21
21
|
)
|
|
22
22
|
|
|
23
|
+
def _create_move_with_lot(self):
|
|
24
|
+
move = self.env["stock.move"].create(
|
|
25
|
+
{
|
|
26
|
+
"product_id": self.product.id,
|
|
27
|
+
"location_id": self.output_loc.id,
|
|
28
|
+
"location_dest_id": self.customer_loc.id,
|
|
29
|
+
"product_uom_qty": 1,
|
|
30
|
+
"product_uom": self.product.uom_id.id,
|
|
31
|
+
"name": "test",
|
|
32
|
+
"procure_method": "make_to_order",
|
|
33
|
+
"warehouse_id": self.warehouse.id,
|
|
34
|
+
"route_ids": [(6, 0, self.warehouse.delivery_route_id.ids)],
|
|
35
|
+
"restrict_lot_id": self.lot.id,
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
move._action_confirm()
|
|
39
|
+
move._action_assign()
|
|
40
|
+
new_lot = self.env["stock.lot"].create(
|
|
41
|
+
{
|
|
42
|
+
"name": "lot2",
|
|
43
|
+
"product_id": self.product.id,
|
|
44
|
+
"company_id": self.warehouse.company_id.id,
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
return move, new_lot
|
|
48
|
+
|
|
49
|
+
def _create_move_dest(self):
|
|
50
|
+
return self.env["stock.move"].create(
|
|
51
|
+
{
|
|
52
|
+
"product_id": self.product.id,
|
|
53
|
+
"location_id": self.customer_loc.id,
|
|
54
|
+
"product_uom_qty": 1,
|
|
55
|
+
"product_uom": self.product.uom_id.id,
|
|
56
|
+
"picking_type_id": self.warehouse.out_type_id.id,
|
|
57
|
+
"location_dest_id": self.output_loc.id,
|
|
58
|
+
"name": "test",
|
|
59
|
+
"procure_method": "make_to_order",
|
|
60
|
+
"warehouse_id": self.warehouse.id,
|
|
61
|
+
"route_ids": [(6, 0, self.warehouse.delivery_route_id.ids)],
|
|
62
|
+
"state": "waiting",
|
|
63
|
+
"restrict_lot_id": self.lot.id,
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
|
|
23
67
|
def test_00_move_restrict_lot_propagation(self):
|
|
24
68
|
move = self.env["stock.move"].create(
|
|
25
69
|
{
|
|
@@ -299,3 +343,40 @@ class TestRestrictLot(TransactionCase):
|
|
|
299
343
|
self.assertRaises(UserError, move._action_done)
|
|
300
344
|
move_line.lot_id = self.lot
|
|
301
345
|
move._action_done()
|
|
346
|
+
|
|
347
|
+
def test_restrict_lot_propagation_dest_moves(self):
|
|
348
|
+
move, new_lot = self._create_move_with_lot()
|
|
349
|
+
move_dest = self._create_move_dest()
|
|
350
|
+
move.move_dest_ids = [(4, move_dest.id)]
|
|
351
|
+
self.assertEqual(move_dest.restrict_lot_id, self.lot)
|
|
352
|
+
move.restrict_lot_id = new_lot.id
|
|
353
|
+
self.assertEqual(move_dest.restrict_lot_id, new_lot)
|
|
354
|
+
|
|
355
|
+
def test_restrict_lot_propagation_origin_moves(self):
|
|
356
|
+
move, new_lot = self._create_move_with_lot()
|
|
357
|
+
orig_move = move.move_orig_ids
|
|
358
|
+
self.assertEqual(orig_move.restrict_lot_id, self.lot)
|
|
359
|
+
move.restrict_lot_id = new_lot.id
|
|
360
|
+
self.assertEqual(orig_move.restrict_lot_id, new_lot)
|
|
361
|
+
|
|
362
|
+
def test_restrict_lot_propagation_origin_and_dest_moves(self):
|
|
363
|
+
move, new_lot = self._create_move_with_lot()
|
|
364
|
+
move_dest = self._create_move_dest()
|
|
365
|
+
move.move_dest_ids = [(4, move_dest.id)]
|
|
366
|
+
orig_move = move.move_orig_ids
|
|
367
|
+
self.assertEqual(move_dest.restrict_lot_id, self.lot)
|
|
368
|
+
self.assertEqual(orig_move.restrict_lot_id, self.lot)
|
|
369
|
+
move.restrict_lot_id = new_lot.id
|
|
370
|
+
self.assertEqual(orig_move.restrict_lot_id, new_lot)
|
|
371
|
+
self.assertEqual(move_dest.restrict_lot_id, new_lot)
|
|
372
|
+
|
|
373
|
+
def test_restrict_lot_no_propagation_error(self):
|
|
374
|
+
move, new_lot = self._create_move_with_lot()
|
|
375
|
+
orig_move = move.move_orig_ids
|
|
376
|
+
orig_move._action_assign()
|
|
377
|
+
orig_move.quantity_done = orig_move.product_uom_qty
|
|
378
|
+
orig_move._action_done()
|
|
379
|
+
self.assertEqual(orig_move.state, "done")
|
|
380
|
+
with self.assertRaises(ValidationError) as m:
|
|
381
|
+
move.restrict_lot_id = new_lot.id
|
|
382
|
+
self.assertIn("You can't modify the Lot/Serial number", m.exception.args[0])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-stock_restrict_lot
|
|
3
|
-
Version: 16.0.
|
|
3
|
+
Version: 16.0.2.0.0
|
|
4
4
|
Summary: Base module that add back the concept of restrict lot on stock move
|
|
5
5
|
Home-page: https://github.com/OCA/stock-logistics-workflow
|
|
6
6
|
Author: Akretion, Odoo Community Association (OCA)
|
|
@@ -11,7 +11,7 @@ Classifier: Framework :: Odoo
|
|
|
11
11
|
Classifier: Framework :: Odoo :: 16.0
|
|
12
12
|
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
|
13
13
|
Requires-Python: >=3.10
|
|
14
|
-
Requires-Dist: odoo
|
|
14
|
+
Requires-Dist: odoo<16.1dev,>=16.0a
|
|
15
15
|
|
|
16
16
|
==================
|
|
17
17
|
Stock Restrict Lot
|
|
@@ -22,7 +22,7 @@ Stock Restrict Lot
|
|
|
22
22
|
!! This file is generated by oca-gen-addon-readme !!
|
|
23
23
|
!! changes will be overwritten. !!
|
|
24
24
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
25
|
-
!! source digest: sha256:
|
|
25
|
+
!! source digest: sha256:e4d8f3bb250ff5fda392e534dabf98d1713d60b4458cfd22205d647818423aa7
|
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
27
27
|
|
|
28
28
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
odoo/addons/stock_restrict_lot/README.rst,sha256=
|
|
1
|
+
odoo/addons/stock_restrict_lot/README.rst,sha256=SOx7zlBUVrrioknif9byFNN8vZqsh4XWSryivfw7fWo,3691
|
|
2
2
|
odoo/addons/stock_restrict_lot/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
|
3
|
-
odoo/addons/stock_restrict_lot/__manifest__.py,sha256
|
|
4
|
-
odoo/addons/stock_restrict_lot/i18n/es.po,sha256=
|
|
5
|
-
odoo/addons/stock_restrict_lot/i18n/hr.po,sha256=
|
|
6
|
-
odoo/addons/stock_restrict_lot/i18n/it.po,sha256=
|
|
7
|
-
odoo/addons/stock_restrict_lot/i18n/stock_restrict_lot.pot,sha256=
|
|
3
|
+
odoo/addons/stock_restrict_lot/__manifest__.py,sha256=ZRqcv0OdfITR-WnY8NSLH9wT7Gk-ue4ZbGYXPhud7i0,506
|
|
4
|
+
odoo/addons/stock_restrict_lot/i18n/es.po,sha256=UKHL4vKheMhf0x2mZ_KwUmtjbwiCXnt-UJMeM82FwUs,2068
|
|
5
|
+
odoo/addons/stock_restrict_lot/i18n/hr.po,sha256=YTZunKeyiqSlJhW2cMSi2dQ8jzrrFXk1gDCyPvl847Y,2111
|
|
6
|
+
odoo/addons/stock_restrict_lot/i18n/it.po,sha256=p1GuTRBBNwL-2A5I00vhVf_9vekVVFpMBTOSishnong,2214
|
|
7
|
+
odoo/addons/stock_restrict_lot/i18n/stock_restrict_lot.pot,sha256=J6-jlvF_7JeZkHIxHRCn8uXCx45gdTp2bcj5FDoY9n0,2005
|
|
8
8
|
odoo/addons/stock_restrict_lot/models/__init__.py,sha256=3nhRO6ipFBMbcrlWXMEMR62djB3_7q2TxcUM42xYMGg,108
|
|
9
9
|
odoo/addons/stock_restrict_lot/models/product_product.py,sha256=CzzvEF2pv0wjVHor1KAUeFYSHlk5aqf5HNR0dC3MJfY,888
|
|
10
|
-
odoo/addons/stock_restrict_lot/models/stock_move.py,sha256=
|
|
10
|
+
odoo/addons/stock_restrict_lot/models/stock_move.py,sha256=WVy3kc0uSAYGg6PmUE7cvXtykuaJxWSR55Ji0YkVjjo,5638
|
|
11
11
|
odoo/addons/stock_restrict_lot/models/stock_picking.py,sha256=0l60llnOb3tnmk-3pNF21kP1aR8vO0qu5BbbeqD3T6A,417
|
|
12
|
-
odoo/addons/stock_restrict_lot/models/stock_rule.py,sha256=
|
|
12
|
+
odoo/addons/stock_restrict_lot/models/stock_rule.py,sha256=2NmuhIpXK9z7q3Ew2yMdXlC9Rc7xm0ZzPzsFsgQvHkI,544
|
|
13
13
|
odoo/addons/stock_restrict_lot/readme/CONTRIBUTORS.rst,sha256=qqVPYPUv3rvLwn1l4fcebyRfQ_Y4DYx_30VCS0CFFw4,287
|
|
14
14
|
odoo/addons/stock_restrict_lot/readme/DESCRIPTION.rst,sha256=5-U3CJQ5zIpAxrXPVPXTPFmmV216MRflIecv7Ou5i4s,281
|
|
15
15
|
odoo/addons/stock_restrict_lot/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
16
|
-
odoo/addons/stock_restrict_lot/static/description/index.html,sha256=
|
|
16
|
+
odoo/addons/stock_restrict_lot/static/description/index.html,sha256=AbdeyhDqtV1VRu3IoUMG4DQqTyzNhncF10rMPHIl5RY,13450
|
|
17
17
|
odoo/addons/stock_restrict_lot/tests/__init__.py,sha256=5RimjaqBd8kD55SNoLqh-g9sCmmI28hPx7IQMUX6AOQ,32
|
|
18
|
-
odoo/addons/stock_restrict_lot/tests/test_restrict_lot.py,sha256=
|
|
18
|
+
odoo/addons/stock_restrict_lot/tests/test_restrict_lot.py,sha256=D0K4tm3uFQzqAg-IxWmE737YpfXqGuV_pwtbmX45kEU,15225
|
|
19
19
|
odoo/addons/stock_restrict_lot/views/stock_move_views.xml,sha256=unNYn0AuYyBhxSnnPN6xf6X7J7S-G1KbXJVYF20scA4,1191
|
|
20
20
|
odoo/addons/stock_restrict_lot/views/stock_picking.xml,sha256=X1N9S5g09NREC_DJAlM1CjZuV21nJgBxTANn_6kC64o,1299
|
|
21
|
-
odoo_addon_stock_restrict_lot-16.0.
|
|
22
|
-
odoo_addon_stock_restrict_lot-16.0.
|
|
23
|
-
odoo_addon_stock_restrict_lot-16.0.
|
|
24
|
-
odoo_addon_stock_restrict_lot-16.0.
|
|
21
|
+
odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info/METADATA,sha256=3YfF72qp164t9sAQkOD4uW-0KIR5xKeRl5zYndSAXew,4261
|
|
22
|
+
odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
|
23
|
+
odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
|
24
|
+
odoo_addon_stock_restrict_lot-16.0.2.0.0.dist-info/RECORD,,
|