odoo-addon-sale-blanket-order 17.0.1.1.0.6__py3-none-any.whl → 17.0.1.1.1__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-sale-blanket-order might be problematic. Click here for more details.
- odoo/addons/sale_blanket_order/README.rst +21 -21
- odoo/addons/sale_blanket_order/__manifest__.py +1 -1
- odoo/addons/sale_blanket_order/i18n/sale_blanket_order.pot +4 -0
- odoo/addons/sale_blanket_order/static/description/index.html +1 -1
- odoo/addons/sale_blanket_order/tests/test_blanket_orders.py +24 -42
- odoo/addons/sale_blanket_order/tests/test_sale_order.py +6 -18
- odoo/addons/sale_blanket_order/wizard/create_sale_orders.py +5 -9
- odoo/addons/sale_blanket_order/wizard/create_sale_orders.xml +10 -0
- {odoo_addon_sale_blanket_order-17.0.1.1.0.6.dist-info → odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info}/METADATA +22 -22
- {odoo_addon_sale_blanket_order-17.0.1.1.0.6.dist-info → odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info}/RECORD +12 -12
- {odoo_addon_sale_blanket_order-17.0.1.1.0.6.dist-info → odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info}/WHEEL +0 -0
- {odoo_addon_sale_blanket_order-17.0.1.1.0.6.dist-info → odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info}/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ Sale Blanket Orders
|
|
|
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:5178e51a963c99ad1ecb6d86824f618914adc9efbf32c3208d3a872d3328c257
|
|
11
11
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
12
12
|
|
|
13
13
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -53,21 +53,21 @@ section:
|
|
|
53
53
|
Hitting the button create will open the form view in which we can
|
|
54
54
|
introduce the following information:
|
|
55
55
|
|
|
56
|
-
-
|
|
56
|
+
- Vendor
|
|
57
57
|
|
|
58
|
-
-
|
|
58
|
+
- Salesperson
|
|
59
59
|
|
|
60
|
-
-
|
|
60
|
+
- Payment Terms
|
|
61
61
|
|
|
62
|
-
-
|
|
62
|
+
- Validity date
|
|
63
63
|
|
|
64
|
-
-
|
|
64
|
+
- Order lines:
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
- Product
|
|
67
|
+
- Accorded price
|
|
68
|
+
- Original, Ordered, Invoiced, Received and Remaining quantities
|
|
69
69
|
|
|
70
|
-
-
|
|
70
|
+
- Terms and Conditions of the Blanket Order
|
|
71
71
|
|
|
72
72
|
|image2|
|
|
73
73
|
|
|
@@ -97,8 +97,8 @@ PO line is associated. Upon adding a new product in a newly created Sale
|
|
|
97
97
|
Order a blanket order line will be suggested depending on the following
|
|
98
98
|
factors:
|
|
99
99
|
|
|
100
|
-
-
|
|
101
|
-
-
|
|
100
|
+
- Closer Validity date
|
|
101
|
+
- Remaining quantity > Quantity introduced in the Sale Order line
|
|
102
102
|
|
|
103
103
|
|image6|
|
|
104
104
|
|
|
@@ -130,22 +130,22 @@ Authors
|
|
|
130
130
|
Contributors
|
|
131
131
|
------------
|
|
132
132
|
|
|
133
|
-
-
|
|
133
|
+
- André Pereira <github@andreparames.com> (https://www.acsone.eu/)
|
|
134
134
|
|
|
135
|
-
-
|
|
135
|
+
- Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
|
|
136
136
|
|
|
137
|
-
-
|
|
137
|
+
- Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
|
138
138
|
|
|
139
|
-
-
|
|
139
|
+
- Alex Comba <alex.comba@agilebg.com> (https://www.agilebg.com/)
|
|
140
140
|
|
|
141
|
-
-
|
|
141
|
+
- Codeforward (https://www.codeforward.nl/):
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
- Jasper Jumelet <jasper.jumelet@codeforward.nl>
|
|
144
|
+
- Chris Bergman <chris.bergman@codeforward.nl>
|
|
145
145
|
|
|
146
|
-
-
|
|
146
|
+
- `Trobz <https://trobz.com>`__:
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
- Nguyễn Minh Chiến <chien@trobz.com>
|
|
149
149
|
|
|
150
150
|
Other credits
|
|
151
151
|
-------------
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"category": "Sale",
|
|
6
6
|
"license": "AGPL-3",
|
|
7
7
|
"author": "Acsone SA/NV, Odoo Community Association (OCA)",
|
|
8
|
-
"version": "17.0.1.1.
|
|
8
|
+
"version": "17.0.1.1.1",
|
|
9
9
|
"website": "https://github.com/OCA/sale-workflow",
|
|
10
10
|
"summary": "Blanket Orders",
|
|
11
11
|
"depends": ["uom", "sale_management"],
|
|
@@ -134,16 +134,19 @@ msgstr ""
|
|
|
134
134
|
|
|
135
135
|
#. module: sale_blanket_order
|
|
136
136
|
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution
|
|
137
|
+
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__analytic_distribution
|
|
137
138
|
msgid "Analytic Distribution"
|
|
138
139
|
msgstr ""
|
|
139
140
|
|
|
140
141
|
#. module: sale_blanket_order
|
|
141
142
|
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_distribution_search
|
|
143
|
+
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__analytic_distribution_search
|
|
142
144
|
msgid "Analytic Distribution Search"
|
|
143
145
|
msgstr ""
|
|
144
146
|
|
|
145
147
|
#. module: sale_blanket_order
|
|
146
148
|
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__analytic_precision
|
|
149
|
+
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__analytic_precision
|
|
147
150
|
msgid "Analytic Precision"
|
|
148
151
|
msgstr ""
|
|
149
152
|
|
|
@@ -343,6 +346,7 @@ msgstr ""
|
|
|
343
346
|
|
|
344
347
|
#. module: sale_blanket_order
|
|
345
348
|
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_line__distribution_analytic_account_ids
|
|
349
|
+
#: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard_line__distribution_analytic_account_ids
|
|
346
350
|
msgid "Distribution Analytic Account"
|
|
347
351
|
msgstr ""
|
|
348
352
|
|
|
@@ -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:5178e51a963c99ad1ecb6d86824f618914adc9efbf32c3208d3a872d3328c257
|
|
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/sale-workflow/tree/17.0/sale_blanket_order"><img alt="OCA/sale-workflow" src="https://img.shields.io/badge/github-OCA%2Fsale--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/sale-workflow-17-0/sale-workflow-17-0-sale_blanket_order"><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/sale-workflow&target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
373
373
|
<p>A blanket order is a pre-agreement to sell a certain number of
|
|
@@ -63,6 +63,9 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
63
63
|
|
|
64
64
|
cls.yesterday = date.today() - timedelta(days=1)
|
|
65
65
|
cls.tomorrow = date.today() + timedelta(days=1)
|
|
66
|
+
cls.analytic_distribution = {
|
|
67
|
+
str(cls.env.ref("analytic.analytic_internal").id): 100,
|
|
68
|
+
}
|
|
66
69
|
|
|
67
70
|
def test_01_create_blanket_order(self):
|
|
68
71
|
"""We create a blanket order and check constrains to confirm BO"""
|
|
@@ -73,9 +76,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
73
76
|
"payment_term_id": self.payment_term.id,
|
|
74
77
|
"pricelist_id": self.sale_pricelist.id,
|
|
75
78
|
"line_ids": [
|
|
76
|
-
(
|
|
77
|
-
0,
|
|
78
|
-
0,
|
|
79
|
+
fields.Command.create(
|
|
79
80
|
{
|
|
80
81
|
"product_id": self.product.id,
|
|
81
82
|
"product_uom": self.product.uom_id.id,
|
|
@@ -83,9 +84,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
83
84
|
"price_unit": 0.0, # will be updated later
|
|
84
85
|
},
|
|
85
86
|
),
|
|
86
|
-
(
|
|
87
|
-
0,
|
|
88
|
-
0,
|
|
87
|
+
fields.Command.create(
|
|
89
88
|
{
|
|
90
89
|
"name": "My section",
|
|
91
90
|
"display_type": "line_section",
|
|
@@ -128,9 +127,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
128
127
|
"payment_term_id": self.payment_term.id,
|
|
129
128
|
"pricelist_id": self.sale_pricelist.id,
|
|
130
129
|
"line_ids": [
|
|
131
|
-
(
|
|
132
|
-
0,
|
|
133
|
-
0,
|
|
130
|
+
fields.Command.create(
|
|
134
131
|
{
|
|
135
132
|
"product_id": False,
|
|
136
133
|
"product_uom": False,
|
|
@@ -138,10 +135,9 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
138
135
|
"display_type": "line_section",
|
|
139
136
|
},
|
|
140
137
|
),
|
|
141
|
-
(
|
|
142
|
-
0,
|
|
143
|
-
0,
|
|
138
|
+
fields.Command.create(
|
|
144
139
|
{
|
|
140
|
+
"analytic_distribution": self.analytic_distribution,
|
|
145
141
|
"product_id": self.product.id,
|
|
146
142
|
"product_uom": self.product.uom_id.id,
|
|
147
143
|
"original_uom_qty": 20.0,
|
|
@@ -178,6 +174,12 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
178
174
|
for so in sos:
|
|
179
175
|
self.assertEqual(so.origin, blanket_order.name)
|
|
180
176
|
|
|
177
|
+
# Analytic distribution is propagated to the sale line
|
|
178
|
+
self.assertEqual(
|
|
179
|
+
sos[0].order_line.filtered("product_id").analytic_distribution,
|
|
180
|
+
self.analytic_distribution,
|
|
181
|
+
)
|
|
182
|
+
|
|
181
183
|
def test_03_create_sale_orders_from_blanket_order_line(self):
|
|
182
184
|
"""We create a blanket order and create two sale orders
|
|
183
185
|
from the blanket order lines"""
|
|
@@ -188,9 +190,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
188
190
|
"payment_term_id": self.payment_term.id,
|
|
189
191
|
"pricelist_id": self.sale_pricelist.id,
|
|
190
192
|
"line_ids": [
|
|
191
|
-
(
|
|
192
|
-
0,
|
|
193
|
-
0,
|
|
193
|
+
fields.Command.create(
|
|
194
194
|
{
|
|
195
195
|
"product_id": self.product.id,
|
|
196
196
|
"product_uom": self.product.uom_id.id,
|
|
@@ -198,9 +198,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
198
198
|
"price_unit": 30.0,
|
|
199
199
|
},
|
|
200
200
|
),
|
|
201
|
-
(
|
|
202
|
-
0,
|
|
203
|
-
0,
|
|
201
|
+
fields.Command.create(
|
|
204
202
|
{
|
|
205
203
|
"product_id": self.product2.id,
|
|
206
204
|
"product_uom": self.product2.uom_id.id,
|
|
@@ -239,9 +237,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
239
237
|
"pricelist_id": self.sale_pricelist.id,
|
|
240
238
|
"currency_id": self.sale_pricelist.currency_id.id,
|
|
241
239
|
"line_ids": [
|
|
242
|
-
(
|
|
243
|
-
0,
|
|
244
|
-
0,
|
|
240
|
+
fields.Command.create(
|
|
245
241
|
{
|
|
246
242
|
"product_id": self.product.id,
|
|
247
243
|
"product_uom": self.product.uom_id.id,
|
|
@@ -249,9 +245,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
249
245
|
"price_unit": 30.0,
|
|
250
246
|
},
|
|
251
247
|
),
|
|
252
|
-
(
|
|
253
|
-
0,
|
|
254
|
-
0,
|
|
248
|
+
fields.Command.create(
|
|
255
249
|
{
|
|
256
250
|
"product_id": self.product2.id,
|
|
257
251
|
"product_uom": self.product2.uom_id.id,
|
|
@@ -273,9 +267,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
273
267
|
"payment_term_id": self.payment_term.id,
|
|
274
268
|
"pricelist_id": self.sale_pricelist.id,
|
|
275
269
|
"order_line": [
|
|
276
|
-
(
|
|
277
|
-
0,
|
|
278
|
-
0,
|
|
270
|
+
fields.Command.create(
|
|
279
271
|
{
|
|
280
272
|
"product_id": self.product.id,
|
|
281
273
|
"product_uom": self.product.uom_id.id,
|
|
@@ -283,9 +275,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
283
275
|
"price_unit": 30.0,
|
|
284
276
|
},
|
|
285
277
|
),
|
|
286
|
-
(
|
|
287
|
-
0,
|
|
288
|
-
0,
|
|
278
|
+
fields.Command.create(
|
|
289
279
|
{
|
|
290
280
|
"product_id": self.product2.id,
|
|
291
281
|
"product_uom": self.product2.uom_id.id,
|
|
@@ -310,9 +300,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
310
300
|
"payment_term_id": self.payment_term.id,
|
|
311
301
|
"pricelist_id": self.sale_pricelist.id,
|
|
312
302
|
"line_ids": [
|
|
313
|
-
(
|
|
314
|
-
0,
|
|
315
|
-
0,
|
|
303
|
+
fields.Command.create(
|
|
316
304
|
{
|
|
317
305
|
"product_id": self.product.id,
|
|
318
306
|
"product_uom": self.uom_dozen.id,
|
|
@@ -332,9 +320,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
332
320
|
"payment_term_id": self.payment_term.id,
|
|
333
321
|
"pricelist_id": self.sale_pricelist.id,
|
|
334
322
|
"order_line": [
|
|
335
|
-
(
|
|
336
|
-
0,
|
|
337
|
-
0,
|
|
323
|
+
fields.Command.create(
|
|
338
324
|
{
|
|
339
325
|
"product_id": self.product.id,
|
|
340
326
|
"product_uom": self.product.uom_id.id,
|
|
@@ -361,9 +347,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
361
347
|
"payment_term_id": self.payment_term.id,
|
|
362
348
|
"pricelist_id": self.sale_pricelist.id,
|
|
363
349
|
"line_ids": [
|
|
364
|
-
(
|
|
365
|
-
0,
|
|
366
|
-
0,
|
|
350
|
+
fields.Command.create(
|
|
367
351
|
{
|
|
368
352
|
"product_id": self.product.id,
|
|
369
353
|
"product_uom": self.product.uom_id.id,
|
|
@@ -371,9 +355,7 @@ class TestSaleBlanketOrders(common.TransactionCase):
|
|
|
371
355
|
"price_unit": 30.0,
|
|
372
356
|
},
|
|
373
357
|
),
|
|
374
|
-
(
|
|
375
|
-
0,
|
|
376
|
-
0,
|
|
358
|
+
fields.Command.create(
|
|
377
359
|
{
|
|
378
360
|
"product_id": self.product2.id,
|
|
379
361
|
"product_uom": self.product2.uom_id.id,
|
|
@@ -52,9 +52,7 @@ class TestSaleOrder(common.TransactionCase):
|
|
|
52
52
|
"payment_term_id": self.payment_term.id,
|
|
53
53
|
"pricelist_id": self.sale_pricelist.id,
|
|
54
54
|
"line_ids": [
|
|
55
|
-
(
|
|
56
|
-
0,
|
|
57
|
-
0,
|
|
55
|
+
fields.Command.create(
|
|
58
56
|
{
|
|
59
57
|
"product_id": self.product.id,
|
|
60
58
|
"product_uom": self.product.uom_id.id,
|
|
@@ -65,9 +63,7 @@ class TestSaleOrder(common.TransactionCase):
|
|
|
65
63
|
"price_unit": 30.0,
|
|
66
64
|
},
|
|
67
65
|
),
|
|
68
|
-
(
|
|
69
|
-
0,
|
|
70
|
-
0,
|
|
66
|
+
fields.Command.create(
|
|
71
67
|
{
|
|
72
68
|
"product_id": self.product.id,
|
|
73
69
|
"product_uom": self.product.uom_id.id,
|
|
@@ -92,9 +88,7 @@ class TestSaleOrder(common.TransactionCase):
|
|
|
92
88
|
"payment_term_id": self.payment_term.id,
|
|
93
89
|
"pricelist_id": self.sale_pricelist.id,
|
|
94
90
|
"line_ids": [
|
|
95
|
-
(
|
|
96
|
-
0,
|
|
97
|
-
0,
|
|
91
|
+
fields.Command.create(
|
|
98
92
|
{
|
|
99
93
|
"product_id": self.product.id,
|
|
100
94
|
"product_uom": self.product.uom_id.id,
|
|
@@ -102,9 +96,7 @@ class TestSaleOrder(common.TransactionCase):
|
|
|
102
96
|
"price_unit": 30.0,
|
|
103
97
|
},
|
|
104
98
|
),
|
|
105
|
-
(
|
|
106
|
-
0,
|
|
107
|
-
0,
|
|
99
|
+
fields.Command.create(
|
|
108
100
|
{
|
|
109
101
|
"product_id": self.product_2.id,
|
|
110
102
|
"product_uom": self.product.uom_id.id,
|
|
@@ -130,9 +122,7 @@ class TestSaleOrder(common.TransactionCase):
|
|
|
130
122
|
{
|
|
131
123
|
"partner_id": self.partner.id,
|
|
132
124
|
"order_line": [
|
|
133
|
-
(
|
|
134
|
-
0,
|
|
135
|
-
0,
|
|
125
|
+
fields.Command.create(
|
|
136
126
|
{
|
|
137
127
|
"name": self.product.name,
|
|
138
128
|
"product_id": self.product.id,
|
|
@@ -164,9 +154,7 @@ class TestSaleOrder(common.TransactionCase):
|
|
|
164
154
|
{
|
|
165
155
|
"partner_id": self.partner.id,
|
|
166
156
|
"order_line": [
|
|
167
|
-
(
|
|
168
|
-
0,
|
|
169
|
-
0,
|
|
157
|
+
fields.Command.create(
|
|
170
158
|
{
|
|
171
159
|
"name": self.product.name,
|
|
172
160
|
"product_id": self.product.id,
|
|
@@ -64,18 +64,11 @@ class BlanketOrderWizard(models.TransientModel):
|
|
|
64
64
|
self._check_valid_blanket_order_line(bo_lines)
|
|
65
65
|
|
|
66
66
|
lines = [
|
|
67
|
-
(
|
|
68
|
-
0,
|
|
69
|
-
0,
|
|
67
|
+
fields.Command.create(
|
|
70
68
|
{
|
|
71
69
|
"blanket_line_id": bol.id,
|
|
72
|
-
"product_id": bol.product_id.id,
|
|
73
70
|
"date_schedule": bol.date_schedule,
|
|
74
|
-
"remaining_uom_qty": bol.remaining_uom_qty,
|
|
75
|
-
"price_unit": bol.price_unit,
|
|
76
|
-
"product_uom": bol.product_uom,
|
|
77
71
|
"qty": bol.remaining_uom_qty,
|
|
78
|
-
"partner_id": bol.partner_id,
|
|
79
72
|
},
|
|
80
73
|
)
|
|
81
74
|
for bol in bo_lines.filtered(
|
|
@@ -102,6 +95,7 @@ class BlanketOrderWizard(models.TransientModel):
|
|
|
102
95
|
|
|
103
96
|
def _prepare_so_line_vals(self, line):
|
|
104
97
|
return {
|
|
98
|
+
"analytic_distribution": line.analytic_distribution,
|
|
105
99
|
"product_id": line.product_id.id,
|
|
106
100
|
"name": line.product_id.name,
|
|
107
101
|
"product_uom": line.product_uom.id,
|
|
@@ -109,7 +103,7 @@ class BlanketOrderWizard(models.TransientModel):
|
|
|
109
103
|
"price_unit": line.blanket_line_id.price_unit,
|
|
110
104
|
"blanket_order_line": line.blanket_line_id.id,
|
|
111
105
|
"product_uom_qty": line.qty,
|
|
112
|
-
"tax_id": [(
|
|
106
|
+
"tax_id": [fields.Command.set(line.taxes_id.ids)],
|
|
113
107
|
}
|
|
114
108
|
|
|
115
109
|
def _prepare_so_vals(
|
|
@@ -199,11 +193,13 @@ class BlanketOrderWizard(models.TransientModel):
|
|
|
199
193
|
|
|
200
194
|
|
|
201
195
|
class BlanketOrderWizardLine(models.TransientModel):
|
|
196
|
+
_inherit = "analytic.mixin"
|
|
202
197
|
_name = "sale.blanket.order.wizard.line"
|
|
203
198
|
_description = "Blanket order wizard line"
|
|
204
199
|
|
|
205
200
|
wizard_id = fields.Many2one("sale.blanket.order.wizard")
|
|
206
201
|
blanket_line_id = fields.Many2one("sale.blanket.order.line")
|
|
202
|
+
analytic_distribution = fields.Json(related="blanket_line_id.analytic_distribution")
|
|
207
203
|
product_id = fields.Many2one(
|
|
208
204
|
"product.product", related="blanket_line_id.product_id", string="Product"
|
|
209
205
|
)
|
|
@@ -20,6 +20,16 @@
|
|
|
20
20
|
<field name="remaining_uom_qty" />
|
|
21
21
|
<field name="product_uom" groups="uom.group_uom" />
|
|
22
22
|
<field name="qty" />
|
|
23
|
+
<field
|
|
24
|
+
name="analytic_distribution"
|
|
25
|
+
widget="analytic_distribution"
|
|
26
|
+
optional="hide"
|
|
27
|
+
groups="analytic.group_analytic_accounting"
|
|
28
|
+
options="{
|
|
29
|
+
'product_field': 'product_id',
|
|
30
|
+
'business_domain': 'sale_order'
|
|
31
|
+
}"
|
|
32
|
+
/>
|
|
23
33
|
</tree>
|
|
24
34
|
</field>
|
|
25
35
|
</group>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-sale_blanket_order
|
|
3
|
-
Version: 17.0.1.1.
|
|
3
|
+
Version: 17.0.1.1.1
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
|
6
6
|
Summary: Blanket Orders
|
|
@@ -22,7 +22,7 @@ Sale Blanket Orders
|
|
|
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:5178e51a963c99ad1ecb6d86824f618914adc9efbf32c3208d3a872d3328c257
|
|
26
26
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
27
27
|
|
|
28
28
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -68,21 +68,21 @@ section:
|
|
|
68
68
|
Hitting the button create will open the form view in which we can
|
|
69
69
|
introduce the following information:
|
|
70
70
|
|
|
71
|
-
-
|
|
71
|
+
- Vendor
|
|
72
72
|
|
|
73
|
-
-
|
|
73
|
+
- Salesperson
|
|
74
74
|
|
|
75
|
-
-
|
|
75
|
+
- Payment Terms
|
|
76
76
|
|
|
77
|
-
-
|
|
77
|
+
- Validity date
|
|
78
78
|
|
|
79
|
-
-
|
|
79
|
+
- Order lines:
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
81
|
+
- Product
|
|
82
|
+
- Accorded price
|
|
83
|
+
- Original, Ordered, Invoiced, Received and Remaining quantities
|
|
84
84
|
|
|
85
|
-
-
|
|
85
|
+
- Terms and Conditions of the Blanket Order
|
|
86
86
|
|
|
87
87
|
|image2|
|
|
88
88
|
|
|
@@ -112,8 +112,8 @@ PO line is associated. Upon adding a new product in a newly created Sale
|
|
|
112
112
|
Order a blanket order line will be suggested depending on the following
|
|
113
113
|
factors:
|
|
114
114
|
|
|
115
|
-
-
|
|
116
|
-
-
|
|
115
|
+
- Closer Validity date
|
|
116
|
+
- Remaining quantity > Quantity introduced in the Sale Order line
|
|
117
117
|
|
|
118
118
|
|image6|
|
|
119
119
|
|
|
@@ -145,22 +145,22 @@ Authors
|
|
|
145
145
|
Contributors
|
|
146
146
|
------------
|
|
147
147
|
|
|
148
|
-
-
|
|
148
|
+
- André Pereira <github@andreparames.com> (https://www.acsone.eu/)
|
|
149
149
|
|
|
150
|
-
-
|
|
150
|
+
- Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
|
|
151
151
|
|
|
152
|
-
-
|
|
152
|
+
- Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
|
153
153
|
|
|
154
|
-
-
|
|
154
|
+
- Alex Comba <alex.comba@agilebg.com> (https://www.agilebg.com/)
|
|
155
155
|
|
|
156
|
-
-
|
|
156
|
+
- Codeforward (https://www.codeforward.nl/):
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
- Jasper Jumelet <jasper.jumelet@codeforward.nl>
|
|
159
|
+
- Chris Bergman <chris.bergman@codeforward.nl>
|
|
160
160
|
|
|
161
|
-
-
|
|
161
|
+
- `Trobz <https://trobz.com>`__:
|
|
162
162
|
|
|
163
|
-
|
|
163
|
+
- Nguyễn Minh Chiến <chien@trobz.com>
|
|
164
164
|
|
|
165
165
|
Other credits
|
|
166
166
|
-------------
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
odoo/addons/sale_blanket_order/README.rst,sha256=
|
|
1
|
+
odoo/addons/sale_blanket_order/README.rst,sha256=8CUvQsI3pg1ysqc0Ct7b78jX2IG3FLgumqjkJ4gqDwI,6066
|
|
2
2
|
odoo/addons/sale_blanket_order/__init__.py,sha256=rKfzYX9RhkkCxgh2f0PJLYN45Kw8T8-fwxw1pbjLuug,108
|
|
3
|
-
odoo/addons/sale_blanket_order/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/sale_blanket_order/__manifest__.py,sha256=GBDSJQjJpJ3AHJv2qeHcT9iHlurq6EHpYfLcxOM_XC8,856
|
|
4
4
|
odoo/addons/sale_blanket_order/data/ir_cron.xml,sha256=B6mIBP7TGt_V0-2tb-GtXQrOXr_FY4D7B0qvvCf3qXc,837
|
|
5
5
|
odoo/addons/sale_blanket_order/data/sequence.xml,sha256=xsEzImnYlOTADfACH_eBMFFjdy6nM_WqJTWJ3MN1_eM,416
|
|
6
6
|
odoo/addons/sale_blanket_order/i18n/de.po,sha256=E-XKxTPNqxYmmA3YX2lmXcEInXM8cg34EYGqBC3pdvw,44026
|
|
@@ -9,7 +9,7 @@ odoo/addons/sale_blanket_order/i18n/fr.po,sha256=19v5XO5y3R-tQ6PSR5CXzU8oGqsEkqX
|
|
|
9
9
|
odoo/addons/sale_blanket_order/i18n/fr_FR.po,sha256=JTz8P_yfKIjO3AoXMbSam_GnKrAy2_cuT0aQbk3Ghyc,43916
|
|
10
10
|
odoo/addons/sale_blanket_order/i18n/it.po,sha256=YnEXiCcXkzL2IhGCy8rIz09AXxHHIiG42w8MsvuxzxU,43720
|
|
11
11
|
odoo/addons/sale_blanket_order/i18n/pt.po,sha256=AzKziG0DEj8tO7rArtpPM9AOMY67MRcKen1D72Moed8,38651
|
|
12
|
-
odoo/addons/sale_blanket_order/i18n/sale_blanket_order.pot,sha256=
|
|
12
|
+
odoo/addons/sale_blanket_order/i18n/sale_blanket_order.pot,sha256=hsJsWtBmoCTalboZpxK3epFgHepcw39wTQN-lA_MeGU,39080
|
|
13
13
|
odoo/addons/sale_blanket_order/models/__init__.py,sha256=7adrBSDps9-KQKNJjoCBKeoWgeF21I62H9yqyQVcZGM,90
|
|
14
14
|
odoo/addons/sale_blanket_order/models/blanket_orders.py,sha256=rSCT2yeOKKSyCg6q6KuQKRiqpHb5ZLXKqaQAmJ8q7qo,26842
|
|
15
15
|
odoo/addons/sale_blanket_order/models/sale_config_settings.py,sha256=zYTEVPXYmCUp8p-OYyIiGdZajGl07HGNBrrIkxB1GwQ,410
|
|
@@ -29,18 +29,18 @@ odoo/addons/sale_blanket_order/static/description/BO_menu.png,sha256=TWKnQPgzBgN
|
|
|
29
29
|
odoo/addons/sale_blanket_order/static/description/PO_BOLine.png,sha256=O8dfvlVOqDcmrKrHtWw5J1gm76fOQ53YCtu9_ujb4bs,37234
|
|
30
30
|
odoo/addons/sale_blanket_order/static/description/PO_from_BO.png,sha256=lmRWLs1DYkXmZfRVn_Hg2X8nEfazH2eVZ8unVlcdj-0,27671
|
|
31
31
|
odoo/addons/sale_blanket_order/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
32
|
-
odoo/addons/sale_blanket_order/static/description/index.html,sha256
|
|
32
|
+
odoo/addons/sale_blanket_order/static/description/index.html,sha256=-EhXKOrrL-CM2ZgCbdloibUZuIsyeq5JEgxBRV8oT4s,17010
|
|
33
33
|
odoo/addons/sale_blanket_order/tests/__init__.py,sha256=0z5WGDe8esOreObf1dM01uMp-O3GmL20PeIvqK0usXY,130
|
|
34
|
-
odoo/addons/sale_blanket_order/tests/test_blanket_orders.py,sha256=
|
|
35
|
-
odoo/addons/sale_blanket_order/tests/test_sale_order.py,sha256=
|
|
34
|
+
odoo/addons/sale_blanket_order/tests/test_blanket_orders.py,sha256=xcQttiI9tD5BymsC_8IpRj4H1epa-pSNUGnUdiEVv5I,16273
|
|
35
|
+
odoo/addons/sale_blanket_order/tests/test_sale_order.py,sha256=N40dy7MTXFcaOCoJ30b-UCEk0k8DwehKrE9bliTdrFg,7251
|
|
36
36
|
odoo/addons/sale_blanket_order/views/sale_blanket_order_line_views.xml,sha256=i_QyeuodE8MJ13InfS-DJLZ8uOl5n2nGH5_nuz6lSHU,7741
|
|
37
37
|
odoo/addons/sale_blanket_order/views/sale_blanket_order_views.xml,sha256=E7dp0mCDWByTCvCB0w9On1rhd_sWVNeldeED2KJIQpc,17626
|
|
38
38
|
odoo/addons/sale_blanket_order/views/sale_config_settings.xml,sha256=h9cVMWvDbnZZszQU7BrIKuUtxw-vQvth8PXCvkWfxUw,1116
|
|
39
39
|
odoo/addons/sale_blanket_order/views/sale_order_views.xml,sha256=SvYFH0wPdjrSM12hWgut6-dbionc0Af88jRApUwOnMM,1683
|
|
40
40
|
odoo/addons/sale_blanket_order/wizard/__init__.py,sha256=4P5jq1IlE7JDNFP0ly3-alAHbqdIYf6fLjQjotKrG08,99
|
|
41
|
-
odoo/addons/sale_blanket_order/wizard/create_sale_orders.py,sha256=
|
|
42
|
-
odoo/addons/sale_blanket_order/wizard/create_sale_orders.xml,sha256=
|
|
43
|
-
odoo_addon_sale_blanket_order-17.0.1.1.
|
|
44
|
-
odoo_addon_sale_blanket_order-17.0.1.1.
|
|
45
|
-
odoo_addon_sale_blanket_order-17.0.1.1.
|
|
46
|
-
odoo_addon_sale_blanket_order-17.0.1.1.
|
|
41
|
+
odoo/addons/sale_blanket_order/wizard/create_sale_orders.py,sha256=dWXhWxY0y920p0Wa8c3E9sw6rMOT2XhJkFk0UacsEgE,8061
|
|
42
|
+
odoo/addons/sale_blanket_order/wizard/create_sale_orders.xml,sha256=nh0uzoJn6P_Wx0WNYgruxN5P3JDGOhMluzMGOO3uXJQ,2637
|
|
43
|
+
odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info/METADATA,sha256=UlBrawzpQ779-A5xNCm5CaQx7cBL54NdoQjV5yGhP-A,6576
|
|
44
|
+
odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
|
|
45
|
+
odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
46
|
+
odoo_addon_sale_blanket_order-17.0.1.1.1.dist-info/RECORD,,
|
|
File without changes
|