odoo-addon-stock-request 18.0.1.0.0.4__py3-none-any.whl → 18.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 +24 -24
- odoo/addons/stock_request/__manifest__.py +1 -1
- odoo/addons/stock_request/static/description/index.html +1 -1
- odoo/addons/stock_request/tests/test_stock_request.py +49 -115
- odoo/addons/stock_request/views/res_config_settings_views.xml +32 -48
- odoo/addons/stock_request/views/stock_request_order_views.xml +8 -1
- odoo/addons/stock_request/views/stock_request_views.xml +9 -1
- {odoo_addon_stock_request-18.0.1.0.0.4.dist-info → odoo_addon_stock_request-18.0.1.1.0.dist-info}/METADATA +25 -25
- {odoo_addon_stock_request-18.0.1.0.0.4.dist-info → odoo_addon_stock_request-18.0.1.1.0.dist-info}/RECORD +11 -11
- {odoo_addon_stock_request-18.0.1.0.0.4.dist-info → odoo_addon_stock_request-18.0.1.1.0.dist-info}/WHEEL +0 -0
- {odoo_addon_stock_request-18.0.1.0.0.4.dist-info → odoo_addon_stock_request-18.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:5f5a5d7fabae6d9c0b08a5617e5df9df3011ba724ca0ca64bb7df9a32717bb6e
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
12
12
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -42,29 +42,29 @@ Configuration
|
|
42
42
|
|
43
43
|
To configure this module:
|
44
44
|
|
45
|
-
-
|
45
|
+
- Go to Stock Requests > Settings
|
46
46
|
|
47
47
|
Users should be assigned to the groups 'Stock Request / User' or 'Stock
|
48
48
|
Request / Manager'.
|
49
49
|
|
50
50
|
## Group Stock Request / User
|
51
51
|
|
52
|
-
-
|
53
|
-
|
54
|
-
-
|
52
|
+
- Can see her/his own Stock Requests, and others that she/he's been
|
53
|
+
granted permission to follow.
|
54
|
+
- Can create/update only her/his Stock Requests.
|
55
55
|
|
56
56
|
## Group Stock Request / Manager
|
57
57
|
|
58
|
-
-
|
58
|
+
- Can fully manage all Stock Requests
|
59
59
|
|
60
60
|
Usage
|
61
61
|
=====
|
62
62
|
|
63
63
|
## Creation
|
64
64
|
|
65
|
-
-
|
66
|
-
-
|
67
|
-
-
|
65
|
+
- Go to 'Stock Requests / Stock Requests' and create a new Request.
|
66
|
+
- Indicate a product, quantity and location.
|
67
|
+
- Press 'Confirm'.
|
68
68
|
|
69
69
|
Upon confirmation the request will be evaluated using the procurement
|
70
70
|
rules for the selected location.
|
@@ -107,21 +107,21 @@ Authors
|
|
107
107
|
Contributors
|
108
108
|
------------
|
109
109
|
|
110
|
-
-
|
111
|
-
-
|
112
|
-
-
|
113
|
-
-
|
114
|
-
-
|
115
|
-
-
|
116
|
-
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
-
|
122
|
-
-
|
123
|
-
-
|
124
|
-
-
|
110
|
+
- Jordi Ballester (EFICENT) <jordi.ballester@forgeflow.com>.
|
111
|
+
- Enric Tobella <etobella@creublanca.es>
|
112
|
+
- Atte Isopuro <atte.isopuro@avoin.systems>
|
113
|
+
- Lois Rilo <lois.rilo@forgeflow.com>
|
114
|
+
- Raul Martin <raul.martin@braintec-group.com>
|
115
|
+
- Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
|
116
|
+
- `Open Source Integrators <https://www.opensourceintegrators.com>`__
|
117
|
+
|
118
|
+
- Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
|
119
|
+
- Steve Campbell <scampbell@opensourceintegrators.com>
|
120
|
+
|
121
|
+
- Héctor Villarreal <hector.villarreal@forgeflow.com>
|
122
|
+
- Kitti U. <kittiu@ecosoft.co.th>
|
123
|
+
- Bernat Puig <bernat.puig@forgeflow.com>
|
124
|
+
- Oriol Miranda <oriol.miranda@forgeflow.com>
|
125
125
|
|
126
126
|
Maintainers
|
127
127
|
-----------
|
@@ -4,7 +4,7 @@
|
|
4
4
|
{
|
5
5
|
"name": "Stock Request",
|
6
6
|
"summary": "Internal request for stock",
|
7
|
-
"version": "18.0.1.
|
7
|
+
"version": "18.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)",
|
@@ -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:5f5a5d7fabae6d9c0b08a5617e5df9df3011ba724ca0ca64bb7df9a32717bb6e
|
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/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/18.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-18-0/stock-logistics-request-18-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=18.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 was written to allow users to request products that are
|
@@ -5,7 +5,7 @@
|
|
5
5
|
from collections import Counter
|
6
6
|
from datetime import datetime
|
7
7
|
|
8
|
-
from odoo import exceptions, fields
|
8
|
+
from odoo import Command, exceptions, fields
|
9
9
|
from odoo.tests import common, new_test_user
|
10
10
|
|
11
11
|
from odoo.addons.base.tests.common import BaseCommon
|
@@ -208,9 +208,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
208
208
|
"location_id": self.warehouse.lot_stock_id.id,
|
209
209
|
"expected_date": expected_date,
|
210
210
|
"stock_request_ids": [
|
211
|
-
(
|
212
|
-
0,
|
213
|
-
0,
|
211
|
+
Command.create(
|
214
212
|
{
|
215
213
|
"product_id": self.product.id,
|
216
214
|
"product_uom_id": self.product.uom_id.id,
|
@@ -260,7 +258,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
260
258
|
self.assertEqual(order.requested_by, order.stock_request_ids.requested_by)
|
261
259
|
|
262
260
|
def test_onchanges(self):
|
263
|
-
self.product.route_ids = [(
|
261
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
264
262
|
vals = {
|
265
263
|
"product_uom_id": self.product.uom_id.id,
|
266
264
|
"product_uom_qty": 5.0,
|
@@ -333,9 +331,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
333
331
|
"location_id": self.warehouse.lot_stock_id.id,
|
334
332
|
"expected_date": expected_date,
|
335
333
|
"stock_request_ids": [
|
336
|
-
(
|
337
|
-
0,
|
338
|
-
0,
|
334
|
+
Command.create(
|
339
335
|
{
|
340
336
|
"product_id": self.product.id,
|
341
337
|
"product_uom_id": self.product.uom_id.id,
|
@@ -361,9 +357,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
361
357
|
"location_id": self.wh2.lot_stock_id.id,
|
362
358
|
"expected_date": expected_date,
|
363
359
|
"stock_request_ids": [
|
364
|
-
(
|
365
|
-
0,
|
366
|
-
0,
|
360
|
+
Command.create(
|
367
361
|
{
|
368
362
|
"product_id": self.product.id,
|
369
363
|
"product_uom_id": self.product.uom_id.id,
|
@@ -390,9 +384,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
390
384
|
"requested_by": self.stock_request_user.id,
|
391
385
|
"expected_date": expected_date,
|
392
386
|
"stock_request_ids": [
|
393
|
-
(
|
394
|
-
0,
|
395
|
-
0,
|
387
|
+
Command.create(
|
396
388
|
{
|
397
389
|
"product_id": self.product.id,
|
398
390
|
"product_uom_id": self.product.uom_id.id,
|
@@ -423,9 +415,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
423
415
|
"procurement_group_id": procurement_group.id,
|
424
416
|
"expected_date": expected_date,
|
425
417
|
"stock_request_ids": [
|
426
|
-
(
|
427
|
-
0,
|
428
|
-
0,
|
418
|
+
Command.create(
|
429
419
|
{
|
430
420
|
"product_id": self.product.id,
|
431
421
|
"product_uom_id": self.product.uom_id.id,
|
@@ -451,9 +441,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
451
441
|
"location_id": self.wh2.lot_stock_id.id,
|
452
442
|
"expected_date": expected_date,
|
453
443
|
"stock_request_ids": [
|
454
|
-
(
|
455
|
-
0,
|
456
|
-
0,
|
444
|
+
Command.create(
|
457
445
|
{
|
458
446
|
"product_id": self.product.id,
|
459
447
|
"product_uom_id": self.product.uom_id.id,
|
@@ -480,9 +468,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
480
468
|
"location_id": self.warehouse.lot_stock_id.id,
|
481
469
|
"expected_date": expected_date,
|
482
470
|
"stock_request_ids": [
|
483
|
-
(
|
484
|
-
0,
|
485
|
-
0,
|
471
|
+
Command.create(
|
486
472
|
{
|
487
473
|
"product_id": self.product.id,
|
488
474
|
"product_uom_id": self.product.uom_id.id,
|
@@ -509,9 +495,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
509
495
|
"picking_policy": "one",
|
510
496
|
"expected_date": expected_date,
|
511
497
|
"stock_request_ids": [
|
512
|
-
(
|
513
|
-
0,
|
514
|
-
0,
|
498
|
+
Command.create(
|
515
499
|
{
|
516
500
|
"product_id": self.product.id,
|
517
501
|
"product_uom_id": self.product.uom_id.id,
|
@@ -537,9 +521,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
537
521
|
"location_id": self.warehouse.lot_stock_id.id,
|
538
522
|
"expected_date": expected_date,
|
539
523
|
"stock_request_ids": [
|
540
|
-
(
|
541
|
-
0,
|
542
|
-
0,
|
524
|
+
Command.create(
|
543
525
|
{
|
544
526
|
"product_id": self.product.id,
|
545
527
|
"product_uom_id": self.product.uom_id.id,
|
@@ -582,9 +564,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
582
564
|
"location_id": self.location_child_1.id,
|
583
565
|
"expected_date": expected_date,
|
584
566
|
"stock_request_ids": [
|
585
|
-
(
|
586
|
-
0,
|
587
|
-
0,
|
567
|
+
Command.create(
|
588
568
|
{
|
589
569
|
"product_id": self.product.id,
|
590
570
|
"product_uom_id": self.product.uom_id.id,
|
@@ -624,9 +604,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
624
604
|
"location_id": self.warehouse.lot_stock_id.id,
|
625
605
|
"expected_date": expected_date,
|
626
606
|
"stock_request_ids": [
|
627
|
-
(
|
628
|
-
0,
|
629
|
-
0,
|
607
|
+
Command.create(
|
630
608
|
{
|
631
609
|
"product_id": self.product.id,
|
632
610
|
"product_uom_id": self.product.uom_id.id,
|
@@ -666,9 +644,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
666
644
|
"location_id": self.warehouse.lot_stock_id.id,
|
667
645
|
"expected_date": expected_date,
|
668
646
|
"stock_request_ids": [
|
669
|
-
(
|
670
|
-
0,
|
671
|
-
0,
|
647
|
+
Command.create(
|
672
648
|
{
|
673
649
|
"product_id": self.product.id,
|
674
650
|
"product_uom_id": self.product.uom_id.id,
|
@@ -686,7 +662,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
686
662
|
|
687
663
|
stock_request = order.stock_request_ids
|
688
664
|
|
689
|
-
self.product.route_ids = [(
|
665
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
690
666
|
order.with_user(self.stock_request_manager).action_confirm()
|
691
667
|
self.assertEqual(order.state, "open")
|
692
668
|
self.assertEqual(stock_request.state, "open")
|
@@ -737,7 +713,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
737
713
|
vals
|
738
714
|
)
|
739
715
|
|
740
|
-
self.product.route_ids = [(
|
716
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
741
717
|
stock_request.with_user(self.stock_request_manager).action_confirm()
|
742
718
|
self.assertEqual(stock_request.state, "open")
|
743
719
|
self.assertEqual(len(stock_request.picking_ids), 1)
|
@@ -786,7 +762,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
786
762
|
.create(vals)
|
787
763
|
)
|
788
764
|
stock_request_2.product_uom_qty = 6.0
|
789
|
-
self.product.route_ids = [(
|
765
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
790
766
|
stock_request_1.sudo().action_confirm()
|
791
767
|
stock_request_2.sudo().action_confirm()
|
792
768
|
self.assertEqual(len(stock_request_1.sudo().picking_ids), 1)
|
@@ -835,9 +811,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
835
811
|
"location_id": self.warehouse.lot_stock_id.id,
|
836
812
|
"expected_date": expected_date,
|
837
813
|
"stock_request_ids": [
|
838
|
-
(
|
839
|
-
0,
|
840
|
-
0,
|
814
|
+
Command.create(
|
841
815
|
{
|
842
816
|
"product_id": self.product.id,
|
843
817
|
"product_uom_id": self.product.uom_id.id,
|
@@ -853,7 +827,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
853
827
|
|
854
828
|
order = self.request_order.with_user(self.stock_request_user).create(vals)
|
855
829
|
|
856
|
-
self.product.route_ids = [(
|
830
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
857
831
|
order.with_user(self.stock_request_manager).action_confirm()
|
858
832
|
stock_request = order.stock_request_ids
|
859
833
|
self.assertEqual(len(order.picking_ids), 1)
|
@@ -900,9 +874,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
900
874
|
"location_id": self.warehouse.lot_stock_id.id,
|
901
875
|
"expected_date": expected_date,
|
902
876
|
"stock_request_ids": [
|
903
|
-
(
|
904
|
-
0,
|
905
|
-
0,
|
877
|
+
Command.create(
|
906
878
|
{
|
907
879
|
"product_id": self.product.id,
|
908
880
|
"product_uom_id": self.product.uom_id.id,
|
@@ -917,7 +889,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
917
889
|
}
|
918
890
|
|
919
891
|
order = self.request_order.create(vals)
|
920
|
-
self.product.route_ids = [(
|
892
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
921
893
|
|
922
894
|
order.with_user(self.stock_request_manager).action_confirm()
|
923
895
|
stock_request = order.stock_request_ids
|
@@ -1117,9 +1089,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
1117
1089
|
"location_id": self.virtual_loc.id,
|
1118
1090
|
"expected_date": expected_date,
|
1119
1091
|
"stock_request_ids": [
|
1120
|
-
(
|
1121
|
-
0,
|
1122
|
-
0,
|
1092
|
+
Command.create(
|
1123
1093
|
{
|
1124
1094
|
"product_id": self.product.id,
|
1125
1095
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1149,9 +1119,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
1149
1119
|
"location_id": self.virtual_loc.id,
|
1150
1120
|
"procurement_group_id": group.id,
|
1151
1121
|
"stock_request_ids": [
|
1152
|
-
(
|
1153
|
-
0,
|
1154
|
-
0,
|
1122
|
+
Command.create(
|
1155
1123
|
{
|
1156
1124
|
"product_id": self.product.id,
|
1157
1125
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1162,9 +1130,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
1162
1130
|
"location_id": self.virtual_loc.id,
|
1163
1131
|
},
|
1164
1132
|
),
|
1165
|
-
(
|
1166
|
-
0,
|
1167
|
-
0,
|
1133
|
+
Command.create(
|
1168
1134
|
{
|
1169
1135
|
"product_id": product2.id,
|
1170
1136
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1175,9 +1141,7 @@ class TestStockRequestBase(TestStockRequest):
|
|
1175
1141
|
"location_id": self.virtual_loc.id,
|
1176
1142
|
},
|
1177
1143
|
),
|
1178
|
-
(
|
1179
|
-
0,
|
1180
|
-
0,
|
1144
|
+
Command.create(
|
1181
1145
|
{
|
1182
1146
|
"product_id": product3.id,
|
1183
1147
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1191,9 +1155,9 @@ class TestStockRequestBase(TestStockRequest):
|
|
1191
1155
|
],
|
1192
1156
|
}
|
1193
1157
|
order = self.request_order.create(vals)
|
1194
|
-
self.product.route_ids = [(
|
1195
|
-
product2.route_ids = [(
|
1196
|
-
product3.route_ids = [(
|
1158
|
+
self.product.route_ids = [Command.set(self.route.ids)]
|
1159
|
+
product2.route_ids = [Command.set(self.route.ids)]
|
1160
|
+
product3.route_ids = [Command.set(self.route.ids)]
|
1197
1161
|
order.action_confirm()
|
1198
1162
|
picking = order.picking_ids
|
1199
1163
|
self.assertEqual(1, len(picking))
|
@@ -1257,13 +1221,13 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1257
1221
|
"Product A",
|
1258
1222
|
cls.main_company.id,
|
1259
1223
|
)
|
1260
|
-
cls.product_a.route_ids = [(
|
1224
|
+
cls.product_a.route_ids = [Command.set(cls.route.ids)]
|
1261
1225
|
cls.product_b = cls._create_product(
|
1262
1226
|
"CODEB",
|
1263
1227
|
"Product B",
|
1264
1228
|
cls.main_company.id,
|
1265
1229
|
)
|
1266
|
-
cls.product_b.route_ids = [(
|
1230
|
+
cls.product_b.route_ids = [Command.set(cls.route.ids)]
|
1267
1231
|
expected_date = fields.Datetime.now()
|
1268
1232
|
vals = {
|
1269
1233
|
"company_id": cls.main_company.id,
|
@@ -1271,9 +1235,7 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1271
1235
|
"location_id": cls.warehouse.lot_stock_id.id,
|
1272
1236
|
"expected_date": expected_date,
|
1273
1237
|
"stock_request_ids": [
|
1274
|
-
(
|
1275
|
-
0,
|
1276
|
-
0,
|
1238
|
+
Command.create(
|
1277
1239
|
{
|
1278
1240
|
"product_id": cls.product_a.id,
|
1279
1241
|
"product_uom_id": cls.product_a.uom_id.id,
|
@@ -1284,9 +1246,7 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1284
1246
|
"expected_date": expected_date,
|
1285
1247
|
},
|
1286
1248
|
),
|
1287
|
-
(
|
1288
|
-
0,
|
1289
|
-
0,
|
1249
|
+
Command.create(
|
1290
1250
|
{
|
1291
1251
|
"product_id": cls.product_b.id,
|
1292
1252
|
"product_uom_id": cls.product_b.uom_id.id,
|
@@ -1393,18 +1353,14 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1393
1353
|
"expected_date": fields.Datetime.now(),
|
1394
1354
|
"route_id": self.route.id,
|
1395
1355
|
"stock_request_ids": [
|
1396
|
-
(
|
1397
|
-
0,
|
1398
|
-
0,
|
1356
|
+
Command.create(
|
1399
1357
|
{
|
1400
1358
|
"product_id": self.product.id,
|
1401
1359
|
"product_uom_id": self.product.uom_id.id,
|
1402
1360
|
"product_uom_qty": 5.0,
|
1403
1361
|
},
|
1404
1362
|
),
|
1405
|
-
(
|
1406
|
-
0,
|
1407
|
-
0,
|
1363
|
+
Command.create(
|
1408
1364
|
{
|
1409
1365
|
"product_id": self.product.id,
|
1410
1366
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1431,9 +1387,7 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1431
1387
|
"location_id": self.warehouse.lot_stock_id.id,
|
1432
1388
|
"expected_date": fields.Datetime.now(),
|
1433
1389
|
"stock_request_ids": [
|
1434
|
-
(
|
1435
|
-
0,
|
1436
|
-
0,
|
1390
|
+
Command.create(
|
1437
1391
|
{
|
1438
1392
|
"product_id": self.product.id,
|
1439
1393
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1441,9 +1395,7 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1441
1395
|
"route_id": self.route.id,
|
1442
1396
|
},
|
1443
1397
|
),
|
1444
|
-
(
|
1445
|
-
0,
|
1446
|
-
0,
|
1398
|
+
Command.create(
|
1447
1399
|
{
|
1448
1400
|
"product_id": self.product.id,
|
1449
1401
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1467,9 +1419,7 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1467
1419
|
"location_id": self.warehouse.lot_stock_id.id,
|
1468
1420
|
"expected_date": fields.Datetime.now(),
|
1469
1421
|
"stock_request_ids": [
|
1470
|
-
(
|
1471
|
-
0,
|
1472
|
-
0,
|
1422
|
+
Command.create(
|
1473
1423
|
{
|
1474
1424
|
"product_id": self.product.id,
|
1475
1425
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1477,9 +1427,7 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1477
1427
|
"route_id": self.route.id,
|
1478
1428
|
},
|
1479
1429
|
),
|
1480
|
-
(
|
1481
|
-
0,
|
1482
|
-
0,
|
1430
|
+
Command.create(
|
1483
1431
|
{
|
1484
1432
|
"product_id": self.product.id,
|
1485
1433
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1500,18 +1448,14 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1500
1448
|
"location_id": self.warehouse.lot_stock_id.id,
|
1501
1449
|
"expected_date": fields.Datetime.now(),
|
1502
1450
|
"stock_request_ids": [
|
1503
|
-
(
|
1504
|
-
0,
|
1505
|
-
0,
|
1451
|
+
Command.create(
|
1506
1452
|
{
|
1507
1453
|
"product_id": self.product.id,
|
1508
1454
|
"product_uom_id": self.product.uom_id.id,
|
1509
1455
|
"product_uom_qty": 5.0,
|
1510
1456
|
},
|
1511
1457
|
),
|
1512
|
-
(
|
1513
|
-
0,
|
1514
|
-
0,
|
1458
|
+
Command.create(
|
1515
1459
|
{
|
1516
1460
|
"product_id": self.product.id,
|
1517
1461
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1537,18 +1481,14 @@ class TestStockRequestOrderState(TestStockRequest):
|
|
1537
1481
|
"location_id": self.warehouse.lot_stock_id.id,
|
1538
1482
|
"expected_date": fields.Datetime.now(),
|
1539
1483
|
"stock_request_ids": [
|
1540
|
-
(
|
1541
|
-
0,
|
1542
|
-
0,
|
1484
|
+
Command.create(
|
1543
1485
|
{
|
1544
1486
|
"product_id": self.product.id,
|
1545
1487
|
"product_uom_id": self.product.uom_id.id,
|
1546
1488
|
"product_uom_qty": 5.0,
|
1547
1489
|
},
|
1548
1490
|
),
|
1549
|
-
(
|
1550
|
-
0,
|
1551
|
-
0,
|
1491
|
+
Command.create(
|
1552
1492
|
{
|
1553
1493
|
"product_id": self.product.id,
|
1554
1494
|
"product_uom_id": self.product.uom_id.id,
|
@@ -1591,13 +1531,13 @@ class TestStockRequestOrderChainedTransfers(common.TransactionCase):
|
|
1591
1531
|
self.env,
|
1592
1532
|
login="stock_request_user",
|
1593
1533
|
groups="stock_request.group_stock_request_user",
|
1594
|
-
company_ids=[(
|
1534
|
+
company_ids=[Command.set([self.main_company.id])],
|
1595
1535
|
)
|
1596
1536
|
self.stock_request_manager = new_test_user(
|
1597
1537
|
self.env,
|
1598
1538
|
login="stock_request_manager",
|
1599
1539
|
groups="stock_request.group_stock_request_manager",
|
1600
|
-
company_ids=[(
|
1540
|
+
company_ids=[Command.set([self.main_company.id])],
|
1601
1541
|
)
|
1602
1542
|
self.product_test = self._create_product("PROD", "Product Test")
|
1603
1543
|
self.stock_loc = self._create_location(
|
@@ -1619,11 +1559,9 @@ class TestStockRequestOrderChainedTransfers(common.TransactionCase):
|
|
1619
1559
|
{
|
1620
1560
|
"name": "Backstock to Manufacturing (2 steps)",
|
1621
1561
|
"warehouse_selectable": True,
|
1622
|
-
"warehouse_ids": [(
|
1562
|
+
"warehouse_ids": [Command.set([self.warehouse.id])],
|
1623
1563
|
"rule_ids": [
|
1624
|
-
(
|
1625
|
-
0,
|
1626
|
-
False,
|
1564
|
+
Command.create(
|
1627
1565
|
{
|
1628
1566
|
"name": "Stock to Transit",
|
1629
1567
|
"location_src_id": self.stock_loc.id,
|
@@ -1635,9 +1573,7 @@ class TestStockRequestOrderChainedTransfers(common.TransactionCase):
|
|
1635
1573
|
"company_id": self.main_company.id,
|
1636
1574
|
},
|
1637
1575
|
),
|
1638
|
-
(
|
1639
|
-
0,
|
1640
|
-
False,
|
1576
|
+
Command.create(
|
1641
1577
|
{
|
1642
1578
|
"name": "Transit to Manufacturing",
|
1643
1579
|
"location_src_id": self.transit_loc.id,
|
@@ -1652,7 +1588,7 @@ class TestStockRequestOrderChainedTransfers(common.TransactionCase):
|
|
1652
1588
|
],
|
1653
1589
|
}
|
1654
1590
|
)
|
1655
|
-
self.product_test.route_ids = [(
|
1591
|
+
self.product_test.route_ids = [Command.set([self.route.id])]
|
1656
1592
|
self._create_stock_quant(self.stock_loc, self.product_test, 5)
|
1657
1593
|
|
1658
1594
|
def _create_product(self, default_code, name, **vals):
|
@@ -1689,9 +1625,7 @@ class TestStockRequestOrderChainedTransfers(common.TransactionCase):
|
|
1689
1625
|
"location_id": self.manufacturing_loc.id,
|
1690
1626
|
"expected_date": expected_date,
|
1691
1627
|
"stock_request_ids": [
|
1692
|
-
(
|
1693
|
-
0,
|
1694
|
-
0,
|
1628
|
+
Command.create(
|
1695
1629
|
{
|
1696
1630
|
"product_id": self.product_test.id,
|
1697
1631
|
"product_uom_id": self.product_test.uom_id.id,
|
@@ -18,105 +18,89 @@
|
|
18
18
|
>
|
19
19
|
<h2>Orders & Configuration</h2>
|
20
20
|
<block id="stock_request">
|
21
|
-
<setting
|
21
|
+
<setting
|
22
|
+
help="Activates Stock Request Orders"
|
23
|
+
class="text-muted"
|
24
|
+
>
|
22
25
|
<field
|
23
26
|
name="group_stock_request_order"
|
24
27
|
string="Enable Orders"
|
25
28
|
/>
|
26
|
-
<div class="content-group">
|
27
|
-
<div class="text-muted">
|
28
|
-
Activates Stock Request Orders
|
29
|
-
</div>
|
30
|
-
</div>
|
31
29
|
</setting>
|
32
|
-
<setting
|
30
|
+
<setting
|
31
|
+
help="By default only internal and transit locations are allowed in Stock Request and Orders."
|
32
|
+
class="text-muted"
|
33
|
+
>
|
33
34
|
<field
|
34
35
|
name="stock_request_allow_virtual_loc"
|
35
36
|
string="Allow All Locations Types"
|
36
37
|
/>
|
37
|
-
<div class="content-group">
|
38
|
-
<div class="text-muted">
|
39
|
-
By default only internal and transit locations are allowed in Stock Request and Orders.
|
40
|
-
</div>
|
41
|
-
</div>
|
42
38
|
</setting>
|
43
|
-
<setting
|
39
|
+
<setting
|
40
|
+
help="Add State to Stock Request and Stock Request Orders if activated."
|
41
|
+
class="text-muted"
|
42
|
+
>
|
44
43
|
<field
|
45
44
|
name="module_stock_request_submit"
|
46
45
|
string="Enable Submitted State"
|
47
46
|
/>
|
48
|
-
<div class="content-group">
|
49
|
-
<div class="text-muted">
|
50
|
-
Add State to Stock Request and Stock Request Orders if activated.
|
51
|
-
</div>
|
52
|
-
</div>
|
53
47
|
</setting>
|
54
|
-
<setting
|
48
|
+
<setting
|
49
|
+
help="By default, available stock is not used"
|
50
|
+
class="text-muted"
|
51
|
+
>
|
55
52
|
<field
|
56
53
|
name="stock_request_check_available_first"
|
57
54
|
string="Check available stock first"
|
58
55
|
/>
|
59
|
-
<div class="content-group">
|
60
|
-
<div
|
61
|
-
class="text-muted"
|
62
|
-
>By default, available stock is not used</div>
|
63
|
-
</div>
|
64
56
|
</setting>
|
65
57
|
</block>
|
66
58
|
<h2>Purchases</h2>
|
67
59
|
<block id="stock_request_purchase">
|
68
|
-
<setting
|
60
|
+
<setting
|
61
|
+
help="Use Purchases with Stock Requests"
|
62
|
+
class="text-muted"
|
63
|
+
>
|
69
64
|
<field
|
70
65
|
name="module_stock_request_purchase"
|
71
66
|
string="Enable Stock Requests for Purchases"
|
72
67
|
/>
|
73
|
-
<div class="content-group">
|
74
|
-
<div class="text-muted">
|
75
|
-
Use Purchases with Stock Requests
|
76
|
-
</div>
|
77
|
-
</div>
|
78
68
|
</setting>
|
79
69
|
</block>
|
80
70
|
<h2>Manufacturing</h2>
|
81
71
|
<block id="stock_request_mrp">
|
82
|
-
<setting
|
72
|
+
<setting
|
73
|
+
help="Use Manufacturing Orders with Stock Requests"
|
74
|
+
class="text-muted"
|
75
|
+
>
|
83
76
|
<field
|
84
77
|
name="module_stock_request_mrp"
|
85
78
|
string="Enable Stock Requests for Manufacturing"
|
86
79
|
/>
|
87
|
-
<div class="content-group">
|
88
|
-
<div class="text-muted">
|
89
|
-
Use Manufacturing Orders with Stock Requests
|
90
|
-
</div>
|
91
|
-
</div>
|
92
80
|
</setting>
|
93
81
|
</block>
|
94
82
|
<h2>Kanban</h2>
|
95
83
|
<block id="stock_request_purchase">
|
96
|
-
<setting
|
84
|
+
<setting
|
85
|
+
help="Use Kanban cards for consumable products"
|
86
|
+
class="text-muted"
|
87
|
+
>
|
97
88
|
<field
|
98
89
|
name="module_stock_request_kanban"
|
99
90
|
string="Enable Stock Requests Kanban cards"
|
100
91
|
/>
|
101
|
-
<div class="content-group">
|
102
|
-
<div class="text-muted">
|
103
|
-
Use Kanban cards for consumable products
|
104
|
-
</div>
|
105
|
-
</div>
|
106
92
|
</setting>
|
107
93
|
</block>
|
108
94
|
<h2>Analytic</h2>
|
109
95
|
<block id="stock_request_analytic">
|
110
|
-
<setting
|
96
|
+
<setting
|
97
|
+
help="Analytic accounting in Stock Requests"
|
98
|
+
class="text-muted"
|
99
|
+
>
|
111
100
|
<field
|
112
101
|
name="module_stock_request_analytic"
|
113
102
|
string="Enable Analytic Accounting in Stock Requests"
|
114
103
|
/>
|
115
|
-
<div class="content-group">
|
116
|
-
<div class="text-muted">
|
117
|
-
Analytic accounting in Stock Requests
|
118
|
-
</div>
|
119
|
-
</div>
|
120
104
|
</setting>
|
121
105
|
</block>
|
122
106
|
</app>
|
@@ -8,7 +8,13 @@
|
|
8
8
|
<field name="name" />
|
9
9
|
<field name="warehouse_id" groups="stock.group_stock_multi_locations" />
|
10
10
|
<field name="location_id" groups="stock.group_stock_multi_locations" />
|
11
|
-
<field
|
11
|
+
<field
|
12
|
+
name="state"
|
13
|
+
widget="badge"
|
14
|
+
decoration-info="state in ('draft', 'open')"
|
15
|
+
decoration-success="state == 'done'"
|
16
|
+
decoration-muted="state == 'cancel'"
|
17
|
+
/>
|
12
18
|
</list>
|
13
19
|
</field>
|
14
20
|
</record>
|
@@ -22,6 +28,7 @@
|
|
22
28
|
name="action_confirm"
|
23
29
|
string="Confirm"
|
24
30
|
type="object"
|
31
|
+
class="oe_highlight"
|
25
32
|
invisible="state not in ['draft']"
|
26
33
|
/>
|
27
34
|
<button
|
@@ -31,7 +31,14 @@
|
|
31
31
|
<field name="qty_in_progress" />
|
32
32
|
<field name="qty_done" optional="show" />
|
33
33
|
<field name="qty_cancelled" optional="show" />
|
34
|
-
<field
|
34
|
+
<field
|
35
|
+
name="state"
|
36
|
+
optional="show"
|
37
|
+
widget="badge"
|
38
|
+
decoration-info="state in ('draft', 'open')"
|
39
|
+
decoration-success="state == 'done'"
|
40
|
+
decoration-muted="state == 'cancel'"
|
41
|
+
/>
|
35
42
|
</list>
|
36
43
|
</field>
|
37
44
|
</record>
|
@@ -109,6 +116,7 @@
|
|
109
116
|
name="action_confirm"
|
110
117
|
string="Confirm"
|
111
118
|
type="object"
|
119
|
+
class="oe_highlight"
|
112
120
|
invisible="state != 'draft'"
|
113
121
|
/>
|
114
122
|
<button
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: odoo-addon-stock_request
|
3
|
-
Version: 18.0.1.
|
3
|
+
Version: 18.0.1.1.0
|
4
4
|
Requires-Python: >=3.10
|
5
5
|
Requires-Dist: odoo==18.0.*
|
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:5f5a5d7fabae6d9c0b08a5617e5df9df3011ba724ca0ca64bb7df9a32717bb6e
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
27
27
|
|
28
28
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
@@ -57,29 +57,29 @@ Configuration
|
|
57
57
|
|
58
58
|
To configure this module:
|
59
59
|
|
60
|
-
-
|
60
|
+
- Go to Stock Requests > Settings
|
61
61
|
|
62
62
|
Users should be assigned to the groups 'Stock Request / User' or 'Stock
|
63
63
|
Request / Manager'.
|
64
64
|
|
65
65
|
## Group Stock Request / User
|
66
66
|
|
67
|
-
-
|
68
|
-
|
69
|
-
-
|
67
|
+
- Can see her/his own Stock Requests, and others that she/he's been
|
68
|
+
granted permission to follow.
|
69
|
+
- Can create/update only her/his Stock Requests.
|
70
70
|
|
71
71
|
## Group Stock Request / Manager
|
72
72
|
|
73
|
-
-
|
73
|
+
- Can fully manage all Stock Requests
|
74
74
|
|
75
75
|
Usage
|
76
76
|
=====
|
77
77
|
|
78
78
|
## Creation
|
79
79
|
|
80
|
-
-
|
81
|
-
-
|
82
|
-
-
|
80
|
+
- Go to 'Stock Requests / Stock Requests' and create a new Request.
|
81
|
+
- Indicate a product, quantity and location.
|
82
|
+
- Press 'Confirm'.
|
83
83
|
|
84
84
|
Upon confirmation the request will be evaluated using the procurement
|
85
85
|
rules for the selected location.
|
@@ -122,21 +122,21 @@ Authors
|
|
122
122
|
Contributors
|
123
123
|
------------
|
124
124
|
|
125
|
-
-
|
126
|
-
-
|
127
|
-
-
|
128
|
-
-
|
129
|
-
-
|
130
|
-
-
|
131
|
-
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
-
|
137
|
-
-
|
138
|
-
-
|
139
|
-
-
|
125
|
+
- Jordi Ballester (EFICENT) <jordi.ballester@forgeflow.com>.
|
126
|
+
- Enric Tobella <etobella@creublanca.es>
|
127
|
+
- Atte Isopuro <atte.isopuro@avoin.systems>
|
128
|
+
- Lois Rilo <lois.rilo@forgeflow.com>
|
129
|
+
- Raul Martin <raul.martin@braintec-group.com>
|
130
|
+
- Serpent Consulting Services Pvt. Ltd. <support@serpentcs.com>
|
131
|
+
- `Open Source Integrators <https://www.opensourceintegrators.com>`__
|
132
|
+
|
133
|
+
- Maxime Chambreuil <mchambreuil@opensourceintegrators.com>
|
134
|
+
- Steve Campbell <scampbell@opensourceintegrators.com>
|
135
|
+
|
136
|
+
- Héctor Villarreal <hector.villarreal@forgeflow.com>
|
137
|
+
- Kitti U. <kittiu@ecosoft.co.th>
|
138
|
+
- Bernat Puig <bernat.puig@forgeflow.com>
|
139
|
+
- Oriol Miranda <oriol.miranda@forgeflow.com>
|
140
140
|
|
141
141
|
Maintainers
|
142
142
|
-----------
|
@@ -1,6 +1,6 @@
|
|
1
|
-
odoo/addons/stock_request/README.rst,sha256=
|
1
|
+
odoo/addons/stock_request/README.rst,sha256=ZY45gzZUfdauFMtgC_CeSwOb6UChZaASgrX6CNe8Jf8,5277
|
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=RiCX-W1x1bNEE_xICH8x3Qsb_BdCCwUg_f14M9QjWP4,1000
|
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=zzZv6sJ-5tTCJfMlH09vrnF1ZPYA_iPdaR_WXqlPMzM,43985
|
6
6
|
odoo/addons/stock_request/i18n/de.po,sha256=PNmXza5aS2yfbwwjDgYJrRYnfdGDPE96fEMLShQi60A,49212
|
@@ -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=3IlUiLZJP6tHn6ABYPpFPNeTReRq98NkUGcxSDLxIkA,16532
|
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=Qff3hE5ls4q_wULyrhuf3FJapnHEAkITNe14Hd5dFd4,67328
|
60
60
|
odoo/addons/stock_request/views/product.xml,sha256=CJ6RE5uGQLlIMDCPKxw8nhodb_rR3jaj-mF5ozCFUKI,1517
|
61
|
-
odoo/addons/stock_request/views/res_config_settings_views.xml,sha256=
|
61
|
+
odoo/addons/stock_request/views/res_config_settings_views.xml,sha256=evY8qem19JYPB2QoW0DofkgiR0ahfZ_aZqHOYHG6Qwc,5391
|
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=hCuaX7ExnDS4J1PRZyu6k3B_CK28oTiIenm_3ysNFLQ,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=
|
67
|
-
odoo/addons/stock_request/views/stock_request_views.xml,sha256=
|
68
|
-
odoo_addon_stock_request-18.0.1.
|
69
|
-
odoo_addon_stock_request-18.0.1.
|
70
|
-
odoo_addon_stock_request-18.0.1.
|
71
|
-
odoo_addon_stock_request-18.0.1.
|
66
|
+
odoo/addons/stock_request/views/stock_request_order_views.xml,sha256=H06rlCdqjL6GGva8P9EuuR6niVxtvI7QhL1POElhxts,11473
|
67
|
+
odoo/addons/stock_request/views/stock_request_views.xml,sha256=lQ-HDuXqlKS4FN7oQimUF44McP-3Zjgbo3FiEhJ6pUY,12240
|
68
|
+
odoo_addon_stock_request-18.0.1.1.0.dist-info/METADATA,sha256=Z8NrtzJY_2DfPgzSyET8OWAZ8wLZVhGBHZYuHLqq_V8,5802
|
69
|
+
odoo_addon_stock_request-18.0.1.1.0.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
|
70
|
+
odoo_addon_stock_request-18.0.1.1.0.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
71
|
+
odoo_addon_stock_request-18.0.1.1.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|