odoo-addon-stock-request 16.0.1.0.0.4__py3-none-any.whl → 16.0.1.1.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.
- odoo/addons/stock_request/README.rst +1 -1
- odoo/addons/stock_request/__manifest__.py +1 -1
- odoo/addons/stock_request/i18n/stock_request.pot +7 -0
- odoo/addons/stock_request/models/stock_request.py +9 -2
- odoo/addons/stock_request/models/stock_request_abstract.py +3 -1
- odoo/addons/stock_request/models/stock_request_allocation.py +3 -1
- odoo/addons/stock_request/models/stock_request_order.py +75 -0
- odoo/addons/stock_request/static/description/index.html +1 -2
- odoo/addons/stock_request/tests/test_stock_request.py +225 -1
- odoo/addons/stock_request/views/stock_request_order_views.xml +6 -0
- {odoo_addon_stock_request-16.0.1.0.0.4.dist-info → odoo_addon_stock_request-16.0.1.1.0.dist-info}/METADATA +2 -2
- {odoo_addon_stock_request-16.0.1.0.0.4.dist-info → odoo_addon_stock_request-16.0.1.1.0.dist-info}/RECORD +14 -14
- {odoo_addon_stock_request-16.0.1.0.0.4.dist-info → odoo_addon_stock_request-16.0.1.1.0.dist-info}/WHEEL +0 -0
- {odoo_addon_stock_request-16.0.1.0.0.4.dist-info → odoo_addon_stock_request-16.0.1.1.0.dist-info}/top_level.txt +0 -0
@@ -7,7 +7,7 @@ Stock Request
|
|
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:e90ad1565ab205eb6def13c09a5e4fe84c790849a54905abcb243bc5200d7121
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -4,7 +4,7 @@
|
|
4
4
|
{
|
5
5
|
"name": "Stock Request",
|
6
6
|
"summary": "Internal request for stock",
|
7
|
-
"version": "16.0.1.
|
7
|
+
"version": "16.0.1.1.0",
|
8
8
|
"license": "LGPL-3",
|
9
9
|
"website": "https://github.com/OCA/stock-logistics-request",
|
10
10
|
"author": "ForgeFlow, Odoo Community Association (OCA)",
|
@@ -752,6 +752,7 @@ msgstr ""
|
|
752
752
|
#. module: stock_request
|
753
753
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request__route_id
|
754
754
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request_abstract__route_id
|
755
|
+
#: model:ir.model.fields,field_description:stock_request.field_stock_request_order__route_id
|
755
756
|
#: model_terms:ir.ui.view,arch_db:stock_request.stock_request_search
|
756
757
|
msgid "Route"
|
757
758
|
msgstr ""
|
@@ -759,6 +760,7 @@ msgstr ""
|
|
759
760
|
#. module: stock_request
|
760
761
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request__route_ids
|
761
762
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request_abstract__route_ids
|
763
|
+
#: model:ir.model.fields,field_description:stock_request.field_stock_request_order__route_ids
|
762
764
|
msgid "Routes"
|
763
765
|
msgstr ""
|
764
766
|
|
@@ -974,6 +976,11 @@ msgstr ""
|
|
974
976
|
msgid "The picking policy must be equal to the order"
|
975
977
|
msgstr ""
|
976
978
|
|
979
|
+
#. module: stock_request
|
980
|
+
#: model:ir.model.fields,help:stock_request.field_stock_request_order__route_id
|
981
|
+
msgid "The route related to a stock request order"
|
982
|
+
msgstr ""
|
983
|
+
|
977
984
|
#. module: stock_request
|
978
985
|
#. odoo-python
|
979
986
|
#: code:addons/stock_request/models/stock_request_order.py:0
|
@@ -162,9 +162,15 @@ class StockRequest(models.Model):
|
|
162
162
|
done_qty = abs(other_qty - incoming_qty)
|
163
163
|
open_qty = sum(request.allocation_ids.mapped("open_product_qty"))
|
164
164
|
uom = request.product_id.uom_id
|
165
|
-
request.qty_done = uom._compute_quantity(
|
165
|
+
request.qty_done = uom._compute_quantity(
|
166
|
+
done_qty,
|
167
|
+
request.product_uom_id,
|
168
|
+
rounding_method="HALF-UP",
|
169
|
+
)
|
166
170
|
request.qty_in_progress = uom._compute_quantity(
|
167
|
-
open_qty,
|
171
|
+
open_qty,
|
172
|
+
request.product_uom_id,
|
173
|
+
rounding_method="HALF-UP",
|
168
174
|
)
|
169
175
|
request.qty_cancelled = (
|
170
176
|
max(
|
@@ -172,6 +178,7 @@ class StockRequest(models.Model):
|
|
172
178
|
uom._compute_quantity(
|
173
179
|
request.product_qty - done_qty - open_qty,
|
174
180
|
request.product_uom_id,
|
181
|
+
rounding_method="HALF-UP",
|
175
182
|
),
|
176
183
|
)
|
177
184
|
if request.allocation_ids
|
@@ -32,7 +32,9 @@ class StockRequest(models.AbstractModel):
|
|
32
32
|
def _compute_product_qty(self):
|
33
33
|
for rec in self:
|
34
34
|
rec.product_qty = rec.product_uom_id._compute_quantity(
|
35
|
-
rec.product_uom_qty,
|
35
|
+
rec.product_uom_qty,
|
36
|
+
rec.product_id.product_tmpl_id.uom_id,
|
37
|
+
rounding_method="HALF-UP",
|
36
38
|
)
|
37
39
|
|
38
40
|
name = fields.Char(copy=False, required=True, readonly=True, default="/")
|
@@ -69,7 +69,9 @@ class StockRequestAllocation(models.Model):
|
|
69
69
|
def _compute_requested_product_qty(self):
|
70
70
|
for rec in self:
|
71
71
|
rec.requested_product_qty = rec.product_uom_id._compute_quantity(
|
72
|
-
rec.requested_product_uom_qty,
|
72
|
+
rec.requested_product_uom_qty,
|
73
|
+
rec.product_id.uom_id,
|
74
|
+
rounding_method="HALF-UP",
|
73
75
|
)
|
74
76
|
|
75
77
|
@api.depends(
|
@@ -139,10 +139,85 @@ class StockRequestOrder(models.Model):
|
|
139
139
|
string="Stock requests", compute="_compute_stock_request_count", readonly=True
|
140
140
|
)
|
141
141
|
|
142
|
+
route_ids = fields.Many2many(
|
143
|
+
"stock.route",
|
144
|
+
string="Routes",
|
145
|
+
compute="_compute_route_ids",
|
146
|
+
readonly=True,
|
147
|
+
store=True,
|
148
|
+
)
|
149
|
+
|
150
|
+
route_id = fields.Many2one(
|
151
|
+
"stock.route",
|
152
|
+
compute="_compute_route_id",
|
153
|
+
inverse="_inverse_route_id",
|
154
|
+
readonly=True,
|
155
|
+
states={"draft": [("readonly", False)]},
|
156
|
+
store=True,
|
157
|
+
help="The route related to a stock request order",
|
158
|
+
)
|
159
|
+
|
142
160
|
_sql_constraints = [
|
143
161
|
("name_uniq", "unique(name, company_id)", "Stock Request name must be unique")
|
144
162
|
]
|
145
163
|
|
164
|
+
@api.depends("warehouse_id", "location_id", "stock_request_ids")
|
165
|
+
def _compute_route_ids(self):
|
166
|
+
route_obj = self.env["stock.route"]
|
167
|
+
routes = route_obj.search(
|
168
|
+
[("warehouse_ids", "in", self.mapped("warehouse_id").ids)]
|
169
|
+
)
|
170
|
+
routes_by_warehouse = {}
|
171
|
+
for route in routes:
|
172
|
+
for warehouse in route.warehouse_ids:
|
173
|
+
routes_by_warehouse.setdefault(warehouse.id, self.env["stock.route"])
|
174
|
+
routes_by_warehouse[warehouse.id] |= route
|
175
|
+
for record in self:
|
176
|
+
routes = route_obj
|
177
|
+
if record.warehouse_id and routes_by_warehouse.get(record.warehouse_id.id):
|
178
|
+
routes |= routes_by_warehouse[record.warehouse_id.id]
|
179
|
+
parents = record.get_parents().ids
|
180
|
+
filtered_routes = routes.filtered(
|
181
|
+
lambda r: any(p.location_dest_id.id in parents for p in r.rule_ids)
|
182
|
+
)
|
183
|
+
if record.stock_request_ids:
|
184
|
+
all_routes = record.stock_request_ids.mapped("route_ids")
|
185
|
+
common_routes = all_routes
|
186
|
+
for line in record.stock_request_ids:
|
187
|
+
common_routes &= line.route_ids
|
188
|
+
final_routes = filtered_routes | common_routes
|
189
|
+
record.route_ids = [(6, 0, final_routes.ids)]
|
190
|
+
else:
|
191
|
+
record.route_ids = [(6, 0, filtered_routes.ids)]
|
192
|
+
|
193
|
+
def get_parents(self):
|
194
|
+
location = self.location_id
|
195
|
+
result = location
|
196
|
+
while location.location_id:
|
197
|
+
location = location.location_id
|
198
|
+
result |= location
|
199
|
+
return result
|
200
|
+
|
201
|
+
@api.depends("stock_request_ids")
|
202
|
+
def _compute_route_id(self):
|
203
|
+
for order in self:
|
204
|
+
if order.stock_request_ids:
|
205
|
+
first_route = order.stock_request_ids[0].route_id or False
|
206
|
+
if any(r.route_id != first_route for r in order.stock_request_ids):
|
207
|
+
first_route = False
|
208
|
+
order.route_id = first_route
|
209
|
+
|
210
|
+
def _inverse_route_id(self):
|
211
|
+
for order in self:
|
212
|
+
if order.route_id:
|
213
|
+
order.stock_request_ids.write({"route_id": order.route_id.id})
|
214
|
+
|
215
|
+
@api.onchange("route_id")
|
216
|
+
def _onchange_route_id(self):
|
217
|
+
if self.route_id:
|
218
|
+
for request in self.stock_request_ids:
|
219
|
+
request.route_id = self.route_id
|
220
|
+
|
146
221
|
@api.depends("stock_request_ids.state")
|
147
222
|
def _compute_state(self):
|
148
223
|
for item in self:
|
@@ -1,4 +1,3 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?>
|
2
1
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
2
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
4
3
|
<head>
|
@@ -367,7 +366,7 @@ ul.auto-toc {
|
|
367
366
|
!! This file is generated by oca-gen-addon-readme !!
|
368
367
|
!! changes will be overwritten. !!
|
369
368
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
370
|
-
!! source digest: sha256:
|
369
|
+
!! source digest: sha256:e90ad1565ab205eb6def13c09a5e4fe84c790849a54905abcb243bc5200d7121
|
371
370
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
372
371
|
<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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/stock-logistics-request/tree/16.0/stock_request"><img alt="OCA/stock-logistics-request" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--request-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-logistics-request-16-0/stock-logistics-request-16-0-stock_request"><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-request&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
373
372
|
<p>This module was written to allow users to request products that are
|
@@ -70,7 +70,7 @@ class TestStockRequest(BaseCommon):
|
|
70
70
|
|
71
71
|
cls.route = cls._create_route(name="Transfer", company_id=cls.main_company.id)
|
72
72
|
cls.route_2 = cls._create_route(name="Transfer", company_id=cls.company_2.id)
|
73
|
-
|
73
|
+
cls.route_3 = cls._create_route(name="Transfer", company_id=cls.main_company.id)
|
74
74
|
cls.uom_dozen = cls.env["uom.uom"].create(
|
75
75
|
{
|
76
76
|
"name": "Test-DozenA",
|
@@ -1319,3 +1319,227 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1319
1319
|
self.assertEqual(self.request_a.state, "cancel")
|
1320
1320
|
self.assertEqual(self.request_b.state, "done")
|
1321
1321
|
self.assertEqual(self.order.state, "done")
|
1322
|
+
|
1323
|
+
def test_rounding_half_up_in_progress_01(self):
|
1324
|
+
product_half_up = self._create_product(
|
1325
|
+
"HALFUP", "HalfUp Product", self.main_company.id
|
1326
|
+
)
|
1327
|
+
product_half_up.uom_id.rounding = 1.0
|
1328
|
+
vals = {
|
1329
|
+
"product_id": product_half_up.id,
|
1330
|
+
"product_uom_id": product_half_up.uom_id.id,
|
1331
|
+
"product_uom_qty": 0.5,
|
1332
|
+
"company_id": self.main_company.id,
|
1333
|
+
"warehouse_id": self.warehouse.id,
|
1334
|
+
"location_id": self.virtual_loc.id,
|
1335
|
+
}
|
1336
|
+
stock_request = self.stock_request.create(vals)
|
1337
|
+
stock_request.action_confirm()
|
1338
|
+
self.assertEqual(
|
1339
|
+
stock_request.qty_in_progress,
|
1340
|
+
1,
|
1341
|
+
"Quantity in progress should be the rounded up quantity after confirmation",
|
1342
|
+
)
|
1343
|
+
|
1344
|
+
def test_rounding_half_up_in_progress_02(self):
|
1345
|
+
product_half_up = self._create_product(
|
1346
|
+
"HALFUP", "HalfUp Product", self.main_company.id
|
1347
|
+
)
|
1348
|
+
product_half_up.uom_id.rounding = 1.0
|
1349
|
+
vals = {
|
1350
|
+
"product_id": product_half_up.id,
|
1351
|
+
"product_uom_id": product_half_up.uom_id.id,
|
1352
|
+
"product_uom_qty": 1.49,
|
1353
|
+
"company_id": self.main_company.id,
|
1354
|
+
"warehouse_id": self.warehouse.id,
|
1355
|
+
"location_id": self.virtual_loc.id,
|
1356
|
+
}
|
1357
|
+
stock_request = self.stock_request.create(vals)
|
1358
|
+
stock_request.action_confirm()
|
1359
|
+
self.assertEqual(
|
1360
|
+
stock_request.qty_in_progress,
|
1361
|
+
1,
|
1362
|
+
"Quantity in progress should be the rounded down quantity after confirmation",
|
1363
|
+
)
|
1364
|
+
|
1365
|
+
def test_route_id_propagation_on_creation(self):
|
1366
|
+
order_vals = {
|
1367
|
+
"company_id": self.main_company.id,
|
1368
|
+
"warehouse_id": self.warehouse.id,
|
1369
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1370
|
+
"expected_date": fields.Datetime.now(),
|
1371
|
+
"route_id": self.route.id,
|
1372
|
+
"stock_request_ids": [
|
1373
|
+
(
|
1374
|
+
0,
|
1375
|
+
0,
|
1376
|
+
{
|
1377
|
+
"product_id": self.product.id,
|
1378
|
+
"product_uom_id": self.product.uom_id.id,
|
1379
|
+
"product_uom_qty": 5.0,
|
1380
|
+
},
|
1381
|
+
),
|
1382
|
+
(
|
1383
|
+
0,
|
1384
|
+
0,
|
1385
|
+
{
|
1386
|
+
"product_id": self.product.id,
|
1387
|
+
"product_uom_id": self.product.uom_id.id,
|
1388
|
+
"product_uom_qty": 10.0,
|
1389
|
+
},
|
1390
|
+
),
|
1391
|
+
],
|
1392
|
+
}
|
1393
|
+
order = self.request_order.create(order_vals)
|
1394
|
+
self.assertEqual(len(order.stock_request_ids), 2)
|
1395
|
+
order.write({"route_id": self.route_3})
|
1396
|
+
for request in order.stock_request_ids:
|
1397
|
+
self.assertEqual(
|
1398
|
+
request.route_id.id,
|
1399
|
+
order.route_id.id,
|
1400
|
+
"The route_id from stock.request.order has not "
|
1401
|
+
"been set in the associated stock.requests.",
|
1402
|
+
)
|
1403
|
+
|
1404
|
+
def test_compute_route_id_consistency_1(self):
|
1405
|
+
order_vals = {
|
1406
|
+
"company_id": self.main_company.id,
|
1407
|
+
"warehouse_id": self.warehouse.id,
|
1408
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1409
|
+
"expected_date": fields.Datetime.now(),
|
1410
|
+
"stock_request_ids": [
|
1411
|
+
(
|
1412
|
+
0,
|
1413
|
+
0,
|
1414
|
+
{
|
1415
|
+
"product_id": self.product.id,
|
1416
|
+
"product_uom_id": self.product.uom_id.id,
|
1417
|
+
"product_uom_qty": 5.0,
|
1418
|
+
"route_id": self.route.id,
|
1419
|
+
},
|
1420
|
+
),
|
1421
|
+
(
|
1422
|
+
0,
|
1423
|
+
0,
|
1424
|
+
{
|
1425
|
+
"product_id": self.product.id,
|
1426
|
+
"product_uom_id": self.product.uom_id.id,
|
1427
|
+
"product_uom_qty": 10.0,
|
1428
|
+
"route_id": self.route_3.id,
|
1429
|
+
},
|
1430
|
+
),
|
1431
|
+
],
|
1432
|
+
}
|
1433
|
+
order = self.request_order.create(order_vals)
|
1434
|
+
order._compute_route_id()
|
1435
|
+
self.assertFalse(
|
1436
|
+
order.route_id,
|
1437
|
+
"Route ID should be False due to inconsistent routes in stock requests.",
|
1438
|
+
)
|
1439
|
+
|
1440
|
+
def test_compute_route_id_consistency_2(self):
|
1441
|
+
order_vals = {
|
1442
|
+
"company_id": self.main_company.id,
|
1443
|
+
"warehouse_id": self.warehouse.id,
|
1444
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1445
|
+
"expected_date": fields.Datetime.now(),
|
1446
|
+
"stock_request_ids": [
|
1447
|
+
(
|
1448
|
+
0,
|
1449
|
+
0,
|
1450
|
+
{
|
1451
|
+
"product_id": self.product.id,
|
1452
|
+
"product_uom_id": self.product.uom_id.id,
|
1453
|
+
"product_uom_qty": 5.0,
|
1454
|
+
"route_id": self.route.id,
|
1455
|
+
},
|
1456
|
+
),
|
1457
|
+
(
|
1458
|
+
0,
|
1459
|
+
0,
|
1460
|
+
{
|
1461
|
+
"product_id": self.product.id,
|
1462
|
+
"product_uom_id": self.product.uom_id.id,
|
1463
|
+
"product_uom_qty": 10.0,
|
1464
|
+
"route_id": self.route.id,
|
1465
|
+
},
|
1466
|
+
),
|
1467
|
+
],
|
1468
|
+
}
|
1469
|
+
order = self.request_order.create(order_vals)
|
1470
|
+
order._compute_route_id()
|
1471
|
+
self.assertEqual(order.route_id, self.route)
|
1472
|
+
|
1473
|
+
def test_inverse_route_id_propagation(self):
|
1474
|
+
order_vals = {
|
1475
|
+
"company_id": self.main_company.id,
|
1476
|
+
"warehouse_id": self.warehouse.id,
|
1477
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1478
|
+
"expected_date": fields.Datetime.now(),
|
1479
|
+
"stock_request_ids": [
|
1480
|
+
(
|
1481
|
+
0,
|
1482
|
+
0,
|
1483
|
+
{
|
1484
|
+
"product_id": self.product.id,
|
1485
|
+
"product_uom_id": self.product.uom_id.id,
|
1486
|
+
"product_uom_qty": 5.0,
|
1487
|
+
},
|
1488
|
+
),
|
1489
|
+
(
|
1490
|
+
0,
|
1491
|
+
0,
|
1492
|
+
{
|
1493
|
+
"product_id": self.product.id,
|
1494
|
+
"product_uom_id": self.product.uom_id.id,
|
1495
|
+
"product_uom_qty": 10.0,
|
1496
|
+
},
|
1497
|
+
),
|
1498
|
+
],
|
1499
|
+
}
|
1500
|
+
order = self.request_order.create(order_vals)
|
1501
|
+
order.route_id = self.route.id
|
1502
|
+
order._inverse_route_id()
|
1503
|
+
for request in order.stock_request_ids:
|
1504
|
+
self.assertEqual(
|
1505
|
+
request.route_id.id,
|
1506
|
+
self.route.id,
|
1507
|
+
"Route ID should propagate to all stock requests.",
|
1508
|
+
)
|
1509
|
+
|
1510
|
+
def test_onchange_route_id_propagation(self):
|
1511
|
+
order_vals = {
|
1512
|
+
"company_id": self.main_company.id,
|
1513
|
+
"warehouse_id": self.warehouse.id,
|
1514
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1515
|
+
"expected_date": fields.Datetime.now(),
|
1516
|
+
"stock_request_ids": [
|
1517
|
+
(
|
1518
|
+
0,
|
1519
|
+
0,
|
1520
|
+
{
|
1521
|
+
"product_id": self.product.id,
|
1522
|
+
"product_uom_id": self.product.uom_id.id,
|
1523
|
+
"product_uom_qty": 5.0,
|
1524
|
+
},
|
1525
|
+
),
|
1526
|
+
(
|
1527
|
+
0,
|
1528
|
+
0,
|
1529
|
+
{
|
1530
|
+
"product_id": self.product.id,
|
1531
|
+
"product_uom_id": self.product.uom_id.id,
|
1532
|
+
"product_uom_qty": 10.0,
|
1533
|
+
},
|
1534
|
+
),
|
1535
|
+
],
|
1536
|
+
}
|
1537
|
+
order = self.request_order.create(order_vals)
|
1538
|
+
order.route_id = self.route.id
|
1539
|
+
order._onchange_route_id()
|
1540
|
+
for request in order.stock_request_ids:
|
1541
|
+
self.assertEqual(
|
1542
|
+
request.route_id.id,
|
1543
|
+
self.route.id,
|
1544
|
+
"Route ID should update on all stock requests on onchange.",
|
1545
|
+
)
|
@@ -102,6 +102,12 @@
|
|
102
102
|
name="location_id"
|
103
103
|
groups="stock.group_stock_multi_locations"
|
104
104
|
/>
|
105
|
+
<field name="route_ids" invisible="1" />
|
106
|
+
<field
|
107
|
+
name="route_id"
|
108
|
+
groups="stock.group_stock_multi_locations"
|
109
|
+
domain="[('id','in',route_ids)]"
|
110
|
+
/>
|
105
111
|
<field
|
106
112
|
name="procurement_group_id"
|
107
113
|
groups="stock.group_adv_location"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-stock-request
|
3
|
-
Version: 16.0.1.
|
3
|
+
Version: 16.0.1.1.0
|
4
4
|
Summary: Internal request for stock
|
5
5
|
Home-page: https://github.com/OCA/stock-logistics-request
|
6
6
|
Author: ForgeFlow, Odoo Community Association (OCA)
|
@@ -23,7 +23,7 @@ Stock Request
|
|
23
23
|
!! This file is generated by oca-gen-addon-readme !!
|
24
24
|
!! changes will be overwritten. !!
|
25
25
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
26
|
-
!! source digest: sha256:
|
26
|
+
!! source digest: sha256:e90ad1565ab205eb6def13c09a5e4fe84c790849a54905abcb243bc5200d7121
|
27
27
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
28
28
|
|
29
29
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -1,6 +1,6 @@
|
|
1
|
-
odoo/addons/stock_request/README.rst,sha256=
|
1
|
+
odoo/addons/stock_request/README.rst,sha256=8TSxsvFvOb1YnpWxk81WAoIOziGP3b6M8r_jEPY2zTk,4854
|
2
2
|
odoo/addons/stock_request/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
3
|
-
odoo/addons/stock_request/__manifest__.py,sha256=
|
3
|
+
odoo/addons/stock_request/__manifest__.py,sha256=vqbv4971uhlTuFPZmRnpZBJQSV5xHZMoLupLXjCPhNY,949
|
4
4
|
odoo/addons/stock_request/data/stock_request_sequence_data.xml,sha256=MKvzK__cH1gecmyqWK6Vj7yJ0o1-oKbqy2ydNoTUhs0,683
|
5
5
|
odoo/addons/stock_request/i18n/ca.po,sha256=qdFJQ8yHPj1bwvNUZQWQhEkFUeWElS6ABVMBZKhaRg0,44478
|
6
6
|
odoo/addons/stock_request/i18n/de.po,sha256=dGkRshD7mK0IIZcxbtlXwqAwWcL7jz3SgH8rB_oUkz4,48646
|
@@ -25,7 +25,7 @@ odoo/addons/stock_request/i18n/pt_BR.po,sha256=nzX1HHO2sGGfIIbLu9XeY2ntzOqRDTAOv
|
|
25
25
|
odoo/addons/stock_request/i18n/ro.po,sha256=RTZ4Y20sMEJ6-NT6x9OMgq95q0uz7_qsitW-Gk6RCYQ,44521
|
26
26
|
odoo/addons/stock_request/i18n/ru.po,sha256=lfAk5AfoZ33AkyOiNKDyNa9EA7R4eHyjjsHMnqm9H8s,44637
|
27
27
|
odoo/addons/stock_request/i18n/sl.po,sha256=RvACOnf5fewwBpWXOmOLrvBUdclR5qZSQUL8HnTIOzs,44535
|
28
|
-
odoo/addons/stock_request/i18n/stock_request.pot,sha256=
|
28
|
+
odoo/addons/stock_request/i18n/stock_request.pot,sha256=ds57NmOZMweKqSlaObw929cTrWhOepRQ562otIGRofA,44528
|
29
29
|
odoo/addons/stock_request/i18n/tr.po,sha256=uuau-e62sZfBloVCZui7XRFWoqYKQ73Jxp9vcB1pdM0,44475
|
30
30
|
odoo/addons/stock_request/i18n/tr_TR.po,sha256=rj6sk8I2YCD4La9yBFdiSB-jHN8fwTS22i4oIKs9cfw,44493
|
31
31
|
odoo/addons/stock_request/i18n/vi_VN.po,sha256=xmGyeDWrkbBVnprA5cIzQvR6bHaexf-zvTJpUuIThm8,44498
|
@@ -38,10 +38,10 @@ odoo/addons/stock_request/models/stock_location.py,sha256=ckie9pUiJ2r_pU_-ojYZie
|
|
38
38
|
odoo/addons/stock_request/models/stock_move.py,sha256=hDQhoO9GHD_-64C0VEcR9csAbldXHI_UtbbEVqVEyfQ,2812
|
39
39
|
odoo/addons/stock_request/models/stock_move_line.py,sha256=yG9lnTjfAdUBdcclnrsB5bzvpItmpV0wrCHIh7hdJDQ,2773
|
40
40
|
odoo/addons/stock_request/models/stock_picking.py,sha256=XmdxMG-GNKJjF6RE8inj45TBy1eEhmRh4nzb-0bMQs0,1339
|
41
|
-
odoo/addons/stock_request/models/stock_request.py,sha256=
|
42
|
-
odoo/addons/stock_request/models/stock_request_abstract.py,sha256=
|
43
|
-
odoo/addons/stock_request/models/stock_request_allocation.py,sha256=
|
44
|
-
odoo/addons/stock_request/models/stock_request_order.py,sha256=
|
41
|
+
odoo/addons/stock_request/models/stock_request.py,sha256=BSLv_kcAam4SLe5W7aATQjkRQTuDD4xsHj7JNtrr4DU,16337
|
42
|
+
odoo/addons/stock_request/models/stock_request_abstract.py,sha256=HiMezc9W7V1N59gPf7hTXepOvsDcaw7FDlKpbE7kVq0,9492
|
43
|
+
odoo/addons/stock_request/models/stock_request_allocation.py,sha256=Kqq6VcZgYSbw2OSooeWgzVLBlWyiVJbR71dyKciPzUg,2927
|
44
|
+
odoo/addons/stock_request/models/stock_request_order.py,sha256=ksl2Ab9NyGxO-I8UZwbxQd2y07nnYZfrhHOsHRD1KsE,15500
|
45
45
|
odoo/addons/stock_request/models/stock_route.py,sha256=VFATxVyY7QGHjX3R83wSrST-EgXstJZY1QS0uALgbQw,853
|
46
46
|
odoo/addons/stock_request/models/stock_rule.py,sha256=bo-oD3LubsetGtFs7m3OpZxQ1QIPPBP9EoNByDKgisI,1048
|
47
47
|
odoo/addons/stock_request/models/stock_warehouse.py,sha256=yiJG9Yw2A1dBXwi61ehdlRbyD8PnGJqiyfJxxyN8KQQ,1476
|
@@ -54,18 +54,18 @@ odoo/addons/stock_request/security/ir.model.access.csv,sha256=dsUwAR79-qQNVwCZhv
|
|
54
54
|
odoo/addons/stock_request/security/stock_request_security.xml,sha256=4nM10OVzHSG11_H2WsQ5HeIcPyGzceGq93qtJue1r0M,5886
|
55
55
|
odoo/addons/stock_request/static/description/icon.png,sha256=HZGM_z7Ta3zNQ2924BUiMfDuVSCWqrEwUQMWXBnK7yk,15218
|
56
56
|
odoo/addons/stock_request/static/description/icon.svg,sha256=e3qo4KGYRy7Mfzhb_bCfVA-73Rk2Lx1z9_kz7tTjdO0,9771
|
57
|
-
odoo/addons/stock_request/static/description/index.html,sha256=
|
57
|
+
odoo/addons/stock_request/static/description/index.html,sha256=epCwM9pFcQFlNYxcpb0kjkZbcIY_BHMO5ME4ASGfPYM,15995
|
58
58
|
odoo/addons/stock_request/tests/__init__.py,sha256=3NQ2fafGprBbsMjR2Y__yzyvFX5Vio1r0j6tT3FTbas,33
|
59
|
-
odoo/addons/stock_request/tests/test_stock_request.py,sha256=
|
59
|
+
odoo/addons/stock_request/tests/test_stock_request.py,sha256=j5o8BBgRjgic2o4iMQYUR9bDpysUP9M0vkVGF5ILu7Q,62313
|
60
60
|
odoo/addons/stock_request/views/product.xml,sha256=CJ6RE5uGQLlIMDCPKxw8nhodb_rR3jaj-mF5ozCFUKI,1517
|
61
61
|
odoo/addons/stock_request/views/res_config_settings_views.xml,sha256=l2V6pRh1FEbFuNEAy5Sp6DB945HXNF1YMUzeAzg-jM0,8628
|
62
62
|
odoo/addons/stock_request/views/stock_move_views.xml,sha256=Z5pNG0WfYz-CTlxgB-rma0BoT08VQDHnm3J_Ksu9BxA,1072
|
63
63
|
odoo/addons/stock_request/views/stock_picking_views.xml,sha256=l0YKqO46QFDdiBoSzOoU7PBrLnNkFxPIHFbBcPWXTVk,1036
|
64
64
|
odoo/addons/stock_request/views/stock_request_allocation_views.xml,sha256=NhoVR2RSOx_OuiKP34g5yzc4U0jNHbVwHySZsIF9BOc,2615
|
65
65
|
odoo/addons/stock_request/views/stock_request_menu.xml,sha256=S_3HPkmYcHC_xtPjusHiZX7RUW5CGrJW3w52ScnJFNw,1308
|
66
|
-
odoo/addons/stock_request/views/stock_request_order_views.xml,sha256=
|
66
|
+
odoo/addons/stock_request/views/stock_request_order_views.xml,sha256=TChohKvG0MFc7K5TBNXAkQUU6CbJKdYBQea5gO6IbNg,10843
|
67
67
|
odoo/addons/stock_request/views/stock_request_views.xml,sha256=zs_4N_VAskigIJp9i-kkG40QEqkxeteK-qcJ6MQqeqU,11757
|
68
|
-
odoo_addon_stock_request-16.0.1.
|
69
|
-
odoo_addon_stock_request-16.0.1.
|
70
|
-
odoo_addon_stock_request-16.0.1.
|
71
|
-
odoo_addon_stock_request-16.0.1.
|
68
|
+
odoo_addon_stock_request-16.0.1.1.0.dist-info/METADATA,sha256=j2vb-Atgr507d18Uc7vTHfrVRm9sssAONogX_du7WfQ,5408
|
69
|
+
odoo_addon_stock_request-16.0.1.1.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
70
|
+
odoo_addon_stock_request-16.0.1.1.0.dist-info/top_level.txt,sha256=qBj40grFkGOfDZ2WDSw3y1RnDlgG0u8rP8pvGNdbz4w,5
|
71
|
+
odoo_addon_stock_request-16.0.1.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|