odoo-addon-stock-request 17.0.1.0.1__py3-none-any.whl → 17.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 +78 -0
- odoo/addons/stock_request/static/description/index.html +1 -1
- odoo/addons/stock_request/tests/test_stock_request.py +227 -0
- odoo/addons/stock_request/views/stock_request_order_views.xml +8 -0
- {odoo_addon_stock_request-17.0.1.0.1.dist-info → odoo_addon_stock_request-17.0.1.1.0.dist-info}/METADATA +2 -2
- {odoo_addon_stock_request-17.0.1.0.1.dist-info → odoo_addon_stock_request-17.0.1.1.0.dist-info}/RECORD +14 -14
- {odoo_addon_stock_request-17.0.1.0.1.dist-info → odoo_addon_stock_request-17.0.1.1.0.dist-info}/WHEEL +0 -0
- {odoo_addon_stock_request-17.0.1.0.1.dist-info → odoo_addon_stock_request-17.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:f9f06e384154affc554d5604a741d02eccbf51bdad12585e266e8e1529099600
|
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": "17.0.1.0
|
7
|
+
"version": "17.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)",
|
@@ -739,6 +739,7 @@ msgstr ""
|
|
739
739
|
#. module: stock_request
|
740
740
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request__route_id
|
741
741
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request_abstract__route_id
|
742
|
+
#: model:ir.model.fields,field_description:stock_request.field_stock_request_order__route_id
|
742
743
|
#: model_terms:ir.ui.view,arch_db:stock_request.stock_request_search
|
743
744
|
msgid "Route"
|
744
745
|
msgstr ""
|
@@ -746,6 +747,7 @@ msgstr ""
|
|
746
747
|
#. module: stock_request
|
747
748
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request__route_ids
|
748
749
|
#: model:ir.model.fields,field_description:stock_request.field_stock_request_abstract__route_ids
|
750
|
+
#: model:ir.model.fields,field_description:stock_request.field_stock_request_order__route_ids
|
749
751
|
msgid "Routes"
|
750
752
|
msgstr ""
|
751
753
|
|
@@ -957,6 +959,11 @@ msgstr ""
|
|
957
959
|
msgid "The picking policy must be equal to the order"
|
958
960
|
msgstr ""
|
959
961
|
|
962
|
+
#. module: stock_request
|
963
|
+
#: model:ir.model.fields,help:stock_request.field_stock_request_order__route_id
|
964
|
+
msgid "The route related to a stock request order"
|
965
|
+
msgstr ""
|
966
|
+
|
960
967
|
#. module: stock_request
|
961
968
|
#. odoo-python
|
962
969
|
#: code:addons/stock_request/models/stock_request_order.py:0
|
@@ -148,9 +148,15 @@ class StockRequest(models.Model):
|
|
148
148
|
done_qty = abs(other_qty - incoming_qty)
|
149
149
|
open_qty = sum(request.allocation_ids.mapped("open_product_qty"))
|
150
150
|
uom = request.product_id.uom_id
|
151
|
-
request.qty_done = uom._compute_quantity(
|
151
|
+
request.qty_done = uom._compute_quantity(
|
152
|
+
done_qty,
|
153
|
+
request.product_uom_id,
|
154
|
+
rounding_method="HALF-UP",
|
155
|
+
)
|
152
156
|
request.qty_in_progress = uom._compute_quantity(
|
153
|
-
open_qty,
|
157
|
+
open_qty,
|
158
|
+
request.product_uom_id,
|
159
|
+
rounding_method="HALF-UP",
|
154
160
|
)
|
155
161
|
request.qty_cancelled = (
|
156
162
|
max(
|
@@ -158,6 +164,7 @@ class StockRequest(models.Model):
|
|
158
164
|
uom._compute_quantity(
|
159
165
|
request.product_qty - done_qty - open_qty,
|
160
166
|
request.product_uom_id,
|
167
|
+
rounding_method="HALF-UP",
|
161
168
|
),
|
162
169
|
)
|
163
170
|
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(
|
@@ -126,10 +126,88 @@ class StockRequestOrder(models.Model):
|
|
126
126
|
string="Stock requests", compute="_compute_stock_request_count", readonly=True
|
127
127
|
)
|
128
128
|
|
129
|
+
route_ids = fields.Many2many(
|
130
|
+
"stock.route",
|
131
|
+
string="Routes",
|
132
|
+
compute="_compute_route_ids",
|
133
|
+
readonly=True,
|
134
|
+
store=True,
|
135
|
+
)
|
136
|
+
|
137
|
+
route_id = fields.Many2one(
|
138
|
+
"stock.route",
|
139
|
+
compute="_compute_route_id",
|
140
|
+
inverse="_inverse_route_id",
|
141
|
+
readonly=True,
|
142
|
+
store=True,
|
143
|
+
help="The route related to a stock request order",
|
144
|
+
)
|
145
|
+
|
129
146
|
_sql_constraints = [
|
130
147
|
("name_uniq", "unique(name, company_id)", "Stock Request name must be unique")
|
131
148
|
]
|
132
149
|
|
150
|
+
@api.depends("warehouse_id", "location_id", "stock_request_ids")
|
151
|
+
def _compute_route_ids(self):
|
152
|
+
route_obj = self.env["stock.route"]
|
153
|
+
routes = route_obj.search(
|
154
|
+
[("warehouse_ids", "in", self.mapped("warehouse_id").ids)]
|
155
|
+
)
|
156
|
+
routes_by_warehouse = {}
|
157
|
+
for route in routes:
|
158
|
+
for warehouse in route.warehouse_ids:
|
159
|
+
routes_by_warehouse.setdefault(warehouse.id, self.env["stock.route"])
|
160
|
+
routes_by_warehouse[warehouse.id] |= route
|
161
|
+
for record in self:
|
162
|
+
routes = route_obj
|
163
|
+
if record.warehouse_id and routes_by_warehouse.get(record.warehouse_id.id):
|
164
|
+
routes |= routes_by_warehouse[record.warehouse_id.id]
|
165
|
+
parents = record.get_parents().ids
|
166
|
+
valid_routes = []
|
167
|
+
for route in routes:
|
168
|
+
if any(p.location_dest_id.id in parents for p in route.rule_ids):
|
169
|
+
valid_routes.append(route)
|
170
|
+
filtered_routes = self.env["stock.route"].browse(
|
171
|
+
[route.id for route in valid_routes]
|
172
|
+
)
|
173
|
+
if record.stock_request_ids:
|
174
|
+
all_routes = record.stock_request_ids.mapped("route_ids")
|
175
|
+
common_routes = all_routes
|
176
|
+
for line in record.stock_request_ids:
|
177
|
+
common_routes &= line.route_ids
|
178
|
+
final_routes = filtered_routes | common_routes
|
179
|
+
record.route_ids = [(6, 0, final_routes.ids)]
|
180
|
+
else:
|
181
|
+
record.route_ids = [(6, 0, filtered_routes.ids)]
|
182
|
+
|
183
|
+
def get_parents(self):
|
184
|
+
location = self.location_id
|
185
|
+
result = location
|
186
|
+
while location.location_id:
|
187
|
+
location = location.location_id
|
188
|
+
result |= location
|
189
|
+
return result
|
190
|
+
|
191
|
+
@api.depends("stock_request_ids")
|
192
|
+
def _compute_route_id(self):
|
193
|
+
for order in self:
|
194
|
+
if order.stock_request_ids:
|
195
|
+
first_route = order.stock_request_ids[0].route_id or False
|
196
|
+
if any(r.route_id != first_route for r in order.stock_request_ids):
|
197
|
+
first_route = False
|
198
|
+
order.route_id = first_route
|
199
|
+
|
200
|
+
def _inverse_route_id(self):
|
201
|
+
for order in self:
|
202
|
+
if order.route_id:
|
203
|
+
order.stock_request_ids.write({"route_id": order.route_id.id})
|
204
|
+
|
205
|
+
@api.onchange("route_id")
|
206
|
+
def _onchange_route_id(self):
|
207
|
+
if self.route_id:
|
208
|
+
for request in self.stock_request_ids:
|
209
|
+
request.route_id = self.route_id
|
210
|
+
|
133
211
|
@api.depends("stock_request_ids.state")
|
134
212
|
def _compute_state(self):
|
135
213
|
for item in self:
|
@@ -366,7 +366,7 @@ ul.auto-toc {
|
|
366
366
|
!! This file is generated by oca-gen-addon-readme !!
|
367
367
|
!! changes will be overwritten. !!
|
368
368
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
369
|
-
!! source digest: sha256:
|
369
|
+
!! source digest: sha256:f9f06e384154affc554d5604a741d02eccbf51bdad12585e266e8e1529099600
|
370
370
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
371
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/17.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-17-0/stock-logistics-request-17-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=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
372
372
|
<p>This module was written to allow users to request products that are
|
@@ -77,6 +77,9 @@ class TestStockRequest(common.TransactionCase):
|
|
77
77
|
self.route_2 = self._create_location_route(
|
78
78
|
name="Transfer", company_id=self.company_2.id
|
79
79
|
)
|
80
|
+
self.route_3 = self._create_location_route(
|
81
|
+
name="Transfer", company_id=self.main_company.id
|
82
|
+
)
|
80
83
|
self.uom_dozen = self.env["uom.uom"].create(
|
81
84
|
{
|
82
85
|
"name": "Test-DozenA",
|
@@ -1341,3 +1344,227 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1341
1344
|
self.assertEqual(self.request_a.state, "cancel")
|
1342
1345
|
self.assertEqual(self.request_b.state, "done")
|
1343
1346
|
self.assertEqual(self.order.state, "done")
|
1347
|
+
|
1348
|
+
def test_rounding_half_up_in_progress_01(self):
|
1349
|
+
product_half_up = self._create_product(
|
1350
|
+
"HALFUP", "HalfUp Product", self.main_company.id
|
1351
|
+
)
|
1352
|
+
product_half_up.uom_id.rounding = 1.0
|
1353
|
+
vals = {
|
1354
|
+
"product_id": product_half_up.id,
|
1355
|
+
"product_uom_id": product_half_up.uom_id.id,
|
1356
|
+
"product_uom_qty": 0.5,
|
1357
|
+
"company_id": self.main_company.id,
|
1358
|
+
"warehouse_id": self.warehouse.id,
|
1359
|
+
"location_id": self.virtual_loc.id,
|
1360
|
+
}
|
1361
|
+
stock_request = self.stock_request.create(vals)
|
1362
|
+
stock_request.action_confirm()
|
1363
|
+
self.assertEqual(
|
1364
|
+
stock_request.qty_in_progress,
|
1365
|
+
1,
|
1366
|
+
"Quantity in progress should be the rounded up after confirmation",
|
1367
|
+
)
|
1368
|
+
|
1369
|
+
def test_rounding_half_up_in_progress_02(self):
|
1370
|
+
product_half_up = self._create_product(
|
1371
|
+
"HALFUP", "HalfUp Product", self.main_company.id
|
1372
|
+
)
|
1373
|
+
product_half_up.uom_id.rounding = 1.0
|
1374
|
+
vals = {
|
1375
|
+
"product_id": product_half_up.id,
|
1376
|
+
"product_uom_id": product_half_up.uom_id.id,
|
1377
|
+
"product_uom_qty": 1.49,
|
1378
|
+
"company_id": self.main_company.id,
|
1379
|
+
"warehouse_id": self.warehouse.id,
|
1380
|
+
"location_id": self.virtual_loc.id,
|
1381
|
+
}
|
1382
|
+
stock_request = self.stock_request.create(vals)
|
1383
|
+
stock_request.action_confirm()
|
1384
|
+
self.assertEqual(
|
1385
|
+
stock_request.qty_in_progress,
|
1386
|
+
1,
|
1387
|
+
"Quantity in progress should be the rounded down after confirmation",
|
1388
|
+
)
|
1389
|
+
|
1390
|
+
def test_route_id_propagation_on_creation(self):
|
1391
|
+
order_vals = {
|
1392
|
+
"company_id": self.main_company.id,
|
1393
|
+
"warehouse_id": self.warehouse.id,
|
1394
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1395
|
+
"expected_date": fields.Datetime.now(),
|
1396
|
+
"route_id": self.route.id,
|
1397
|
+
"stock_request_ids": [
|
1398
|
+
(
|
1399
|
+
0,
|
1400
|
+
0,
|
1401
|
+
{
|
1402
|
+
"product_id": self.product.id,
|
1403
|
+
"product_uom_id": self.product.uom_id.id,
|
1404
|
+
"product_uom_qty": 5.0,
|
1405
|
+
},
|
1406
|
+
),
|
1407
|
+
(
|
1408
|
+
0,
|
1409
|
+
0,
|
1410
|
+
{
|
1411
|
+
"product_id": self.product.id,
|
1412
|
+
"product_uom_id": self.product.uom_id.id,
|
1413
|
+
"product_uom_qty": 10.0,
|
1414
|
+
},
|
1415
|
+
),
|
1416
|
+
],
|
1417
|
+
}
|
1418
|
+
order = self.request_order.create(order_vals)
|
1419
|
+
self.assertEqual(len(order.stock_request_ids), 2)
|
1420
|
+
order.write({"route_id": self.route_3})
|
1421
|
+
for request in order.stock_request_ids:
|
1422
|
+
self.assertEqual(
|
1423
|
+
request.route_id.id,
|
1424
|
+
order.route_id.id,
|
1425
|
+
"The route_id from stock.request.order has not "
|
1426
|
+
"been set in the associated stock.requests.",
|
1427
|
+
)
|
1428
|
+
|
1429
|
+
def test_compute_route_id_consistency_1(self):
|
1430
|
+
order_vals = {
|
1431
|
+
"company_id": self.main_company.id,
|
1432
|
+
"warehouse_id": self.warehouse.id,
|
1433
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1434
|
+
"expected_date": fields.Datetime.now(),
|
1435
|
+
"stock_request_ids": [
|
1436
|
+
(
|
1437
|
+
0,
|
1438
|
+
0,
|
1439
|
+
{
|
1440
|
+
"product_id": self.product.id,
|
1441
|
+
"product_uom_id": self.product.uom_id.id,
|
1442
|
+
"product_uom_qty": 5.0,
|
1443
|
+
"route_id": self.route.id,
|
1444
|
+
},
|
1445
|
+
),
|
1446
|
+
(
|
1447
|
+
0,
|
1448
|
+
0,
|
1449
|
+
{
|
1450
|
+
"product_id": self.product.id,
|
1451
|
+
"product_uom_id": self.product.uom_id.id,
|
1452
|
+
"product_uom_qty": 10.0,
|
1453
|
+
"route_id": self.route_3.id,
|
1454
|
+
},
|
1455
|
+
),
|
1456
|
+
],
|
1457
|
+
}
|
1458
|
+
order = self.request_order.create(order_vals)
|
1459
|
+
order._compute_route_id()
|
1460
|
+
self.assertFalse(
|
1461
|
+
order.route_id,
|
1462
|
+
"Route ID should be False due to inconsistent routes in stock requests.",
|
1463
|
+
)
|
1464
|
+
|
1465
|
+
def test_compute_route_id_consistency_2(self):
|
1466
|
+
order_vals = {
|
1467
|
+
"company_id": self.main_company.id,
|
1468
|
+
"warehouse_id": self.warehouse.id,
|
1469
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1470
|
+
"expected_date": fields.Datetime.now(),
|
1471
|
+
"stock_request_ids": [
|
1472
|
+
(
|
1473
|
+
0,
|
1474
|
+
0,
|
1475
|
+
{
|
1476
|
+
"product_id": self.product.id,
|
1477
|
+
"product_uom_id": self.product.uom_id.id,
|
1478
|
+
"product_uom_qty": 5.0,
|
1479
|
+
"route_id": self.route.id,
|
1480
|
+
},
|
1481
|
+
),
|
1482
|
+
(
|
1483
|
+
0,
|
1484
|
+
0,
|
1485
|
+
{
|
1486
|
+
"product_id": self.product.id,
|
1487
|
+
"product_uom_id": self.product.uom_id.id,
|
1488
|
+
"product_uom_qty": 10.0,
|
1489
|
+
"route_id": self.route.id,
|
1490
|
+
},
|
1491
|
+
),
|
1492
|
+
],
|
1493
|
+
}
|
1494
|
+
order = self.request_order.create(order_vals)
|
1495
|
+
order._compute_route_id()
|
1496
|
+
self.assertEqual(order.route_id, self.route)
|
1497
|
+
|
1498
|
+
def test_inverse_route_id_propagation(self):
|
1499
|
+
order_vals = {
|
1500
|
+
"company_id": self.main_company.id,
|
1501
|
+
"warehouse_id": self.warehouse.id,
|
1502
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1503
|
+
"expected_date": fields.Datetime.now(),
|
1504
|
+
"stock_request_ids": [
|
1505
|
+
(
|
1506
|
+
0,
|
1507
|
+
0,
|
1508
|
+
{
|
1509
|
+
"product_id": self.product.id,
|
1510
|
+
"product_uom_id": self.product.uom_id.id,
|
1511
|
+
"product_uom_qty": 5.0,
|
1512
|
+
},
|
1513
|
+
),
|
1514
|
+
(
|
1515
|
+
0,
|
1516
|
+
0,
|
1517
|
+
{
|
1518
|
+
"product_id": self.product.id,
|
1519
|
+
"product_uom_id": self.product.uom_id.id,
|
1520
|
+
"product_uom_qty": 10.0,
|
1521
|
+
},
|
1522
|
+
),
|
1523
|
+
],
|
1524
|
+
}
|
1525
|
+
order = self.request_order.create(order_vals)
|
1526
|
+
order.route_id = self.route.id
|
1527
|
+
order._inverse_route_id()
|
1528
|
+
for request in order.stock_request_ids:
|
1529
|
+
self.assertEqual(
|
1530
|
+
request.route_id.id,
|
1531
|
+
self.route.id,
|
1532
|
+
"Route ID should propagate to all stock requests.",
|
1533
|
+
)
|
1534
|
+
|
1535
|
+
def test_onchange_route_id_propagation(self):
|
1536
|
+
order_vals = {
|
1537
|
+
"company_id": self.main_company.id,
|
1538
|
+
"warehouse_id": self.warehouse.id,
|
1539
|
+
"location_id": self.warehouse.lot_stock_id.id,
|
1540
|
+
"expected_date": fields.Datetime.now(),
|
1541
|
+
"stock_request_ids": [
|
1542
|
+
(
|
1543
|
+
0,
|
1544
|
+
0,
|
1545
|
+
{
|
1546
|
+
"product_id": self.product.id,
|
1547
|
+
"product_uom_id": self.product.uom_id.id,
|
1548
|
+
"product_uom_qty": 5.0,
|
1549
|
+
},
|
1550
|
+
),
|
1551
|
+
(
|
1552
|
+
0,
|
1553
|
+
0,
|
1554
|
+
{
|
1555
|
+
"product_id": self.product.id,
|
1556
|
+
"product_uom_id": self.product.uom_id.id,
|
1557
|
+
"product_uom_qty": 10.0,
|
1558
|
+
},
|
1559
|
+
),
|
1560
|
+
],
|
1561
|
+
}
|
1562
|
+
order = self.request_order.create(order_vals)
|
1563
|
+
order.route_id = self.route.id
|
1564
|
+
order._onchange_route_id()
|
1565
|
+
for request in order.stock_request_ids:
|
1566
|
+
self.assertEqual(
|
1567
|
+
request.route_id.id,
|
1568
|
+
self.route.id,
|
1569
|
+
"Route ID should update on all stock requests on onchange.",
|
1570
|
+
)
|
@@ -95,6 +95,14 @@
|
|
95
95
|
groups="stock.group_stock_multi_locations"
|
96
96
|
/>
|
97
97
|
<field name="allow_virtual_location" invisible="1" />
|
98
|
+
<field name="route_ids" invisible="1" />
|
99
|
+
<field
|
100
|
+
name="route_id"
|
101
|
+
groups="stock.group_stock_multi_locations"
|
102
|
+
readonly="state != 'draft'"
|
103
|
+
domain="[('id','in',route_ids)]"
|
104
|
+
options="{'no_create': True}"
|
105
|
+
/>
|
98
106
|
<field
|
99
107
|
name="procurement_group_id"
|
100
108
|
groups="stock.group_adv_location"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-stock_request
|
3
|
-
Version: 17.0.1.0
|
3
|
+
Version: 17.0.1.1.0
|
4
4
|
Requires-Python: >=3.10
|
5
5
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
6
6
|
Summary: Internal request for stock
|
@@ -22,7 +22,7 @@ Stock Request
|
|
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:f9f06e384154affc554d5604a741d02eccbf51bdad12585e266e8e1529099600
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
27
27
|
|
28
28
|
.. |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=W6u6ZfE2_YlYBhiUPGFLc1hd4uUaKdBYvSay8WxJB_c,4877
|
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=H_hEVoDblWdEpzVQJZaC1UXhQvNeNeJBt6nffVLg5jc,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=-zMtmik3AlceFY1A7YnyEctmHyyGdXyP5Ggzicy6MJU,43954
|
6
6
|
odoo/addons/stock_request/i18n/de.po,sha256=ByNVbp_DfoNWUt27O6Gqd975ocZ6OGYpUP8_Pil6GIo,49181
|
@@ -25,7 +25,7 @@ odoo/addons/stock_request/i18n/pt_BR.po,sha256=Jpbj_rqNNy8XIiVVKel5RaxucOFZS4uGs
|
|
25
25
|
odoo/addons/stock_request/i18n/ro.po,sha256=pskS33LJJ5WzbxE9BXiXOt6hx-UO9ooTJIOviN_X3dI,43997
|
26
26
|
odoo/addons/stock_request/i18n/ru.po,sha256=m1WL-SazHjs4gHwSDuaPvU-Fyq7UpvWGSHRqW8_BJ2I,44113
|
27
27
|
odoo/addons/stock_request/i18n/sl.po,sha256=0ed7QCibQiHqyZZPeSocMfomKCGnpoQG_TAw6s8jP28,44011
|
28
|
-
odoo/addons/stock_request/i18n/stock_request.pot,sha256=
|
28
|
+
odoo/addons/stock_request/i18n/stock_request.pot,sha256=ZCF-MGcwnZTsH73kSEY7iKkzeK0yLo-yuBIegX0285U,44004
|
29
29
|
odoo/addons/stock_request/i18n/tr.po,sha256=7YAdcUQ1EqE5LtciqWQ086F0BFNpzG4wHCLfBetqM9k,43951
|
30
30
|
odoo/addons/stock_request/i18n/tr_TR.po,sha256=2ABNIRWVjGtP2-l_1voGrMePjSmUUEX8Ms6jBE91TOM,43969
|
31
31
|
odoo/addons/stock_request/i18n/vi_VN.po,sha256=4PBHHjsaE59x31CZhqp2HEhzjpaAoey7t8msFjGGlH0,43974
|
@@ -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=Pu8aIo3ydPuoUbUuBcKjCND_VRilp5Uh6AKnzQmbOhs,2782
|
39
39
|
odoo/addons/stock_request/models/stock_move_line.py,sha256=75R5LJjHZtU-fTHcC_vhnoMhgDEG-S9fYuUsD_vmzQ4,2765
|
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=yO1yTRN-92TV14gSum2QOuwx0go2fqt0mef1vzjeiww,16270
|
42
|
+
odoo/addons/stock_request/models/stock_request_abstract.py,sha256=6U0dh2NWcIndDSKYfwMLMJREZc1pPfS_sUoTwjweAh0,9505
|
43
|
+
odoo/addons/stock_request/models/stock_request_allocation.py,sha256=Kqq6VcZgYSbw2OSooeWgzVLBlWyiVJbR71dyKciPzUg,2927
|
44
|
+
odoo/addons/stock_request/models/stock_request_order.py,sha256=jkNQT2dkocE9F_xT9zWYBHmvsI2GSHFUvTaaT8B5qw8,15146
|
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=BQSN-HB1snD0ex-pGwcVwxZHmxXDSb4aI1VNDkIjYKM,1033
|
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=VP0gCObFyM2wl0jcsO_J0vt2_jV0BQWtj4UMSqPellA,5978
|
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=-PWVpOMf6Y26M4VYcp3vmlMaGhvuN8Oqd3nN68IU5lQ,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=W0xKB_53MvH9ckHbt3qBzDbkRFBCNNhQZQ3ZFDr2BKI,63076
|
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=kE05fmV2drjepSISURc67R7Uk_62zayWtncGSxzKTBo,6260
|
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=fmOupY9n5FFuFZtYz1C5wy77OpX-7DmIBVrGJ2uEAVw,1017
|
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=xVN0r-S1h9B4xg-duX00qNix3SM-4kTmDDP5JUzvA5s,11383
|
67
67
|
odoo/addons/stock_request/views/stock_request_views.xml,sha256=o_9aY_EOfHymmrg79uQJcVi4snCTUMt3CWacxmnIrxY,12136
|
68
|
-
odoo_addon_stock_request-17.0.1.0.
|
69
|
-
odoo_addon_stock_request-17.0.1.0.
|
70
|
-
odoo_addon_stock_request-17.0.1.0.
|
71
|
-
odoo_addon_stock_request-17.0.1.0.
|
68
|
+
odoo_addon_stock_request-17.0.1.1.0.dist-info/METADATA,sha256=6A2UTMY2zSHcSPcE6CbuDVcsY7SNXd9FxCqSxHCDPtw,5410
|
69
|
+
odoo_addon_stock_request-17.0.1.1.0.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
|
70
|
+
odoo_addon_stock_request-17.0.1.1.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
71
|
+
odoo_addon_stock_request-17.0.1.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|