odoo-addon-sale-blanket-order 17.0.1.1.0.5__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.

@@ -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:3ed0d98f6c7baa76799bdb56bea83ceacdd6dd8f33e5050b56cd1c602d366edb
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
- - Vendor
56
+ - Vendor
57
57
 
58
- - Salesperson
58
+ - Salesperson
59
59
 
60
- - Payment Terms
60
+ - Payment Terms
61
61
 
62
- - Validity date
62
+ - Validity date
63
63
 
64
- - Order lines:
64
+ - Order lines:
65
65
 
66
- - Product
67
- - Accorded price
68
- - Original, Ordered, Invoiced, Received and Remaining quantities
66
+ - Product
67
+ - Accorded price
68
+ - Original, Ordered, Invoiced, Received and Remaining quantities
69
69
 
70
- - Terms and Conditions of the Blanket Order
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
- - Closer Validity date
101
- - Remaining quantity > Quantity introduced in the Sale Order line
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
- - André Pereira <github@andreparames.com> (https://www.acsone.eu/)
133
+ - André Pereira <github@andreparames.com> (https://www.acsone.eu/)
134
134
 
135
- - Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
135
+ - Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
136
136
 
137
- - Jordi Ballester Alomar <jordi.ballester@eficent.com>
137
+ - Jordi Ballester Alomar <jordi.ballester@eficent.com>
138
138
 
139
- - Alex Comba <alex.comba@agilebg.com> (https://www.agilebg.com/)
139
+ - Alex Comba <alex.comba@agilebg.com> (https://www.agilebg.com/)
140
140
 
141
- - Codeforward (https://www.codeforward.nl/):
141
+ - Codeforward (https://www.codeforward.nl/):
142
142
 
143
- - Jasper Jumelet <jasper.jumelet@codeforward.nl>
144
- - Chris Bergman <chris.bergman@codeforward.nl>
143
+ - Jasper Jumelet <jasper.jumelet@codeforward.nl>
144
+ - Chris Bergman <chris.bergman@codeforward.nl>
145
145
 
146
- - `Trobz <https://trobz.com>`__:
146
+ - `Trobz <https://trobz.com>`__:
147
147
 
148
- - Nguyễn Minh Chiến <chien@trobz.com>
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.0",
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"],
@@ -6,7 +6,7 @@ msgid ""
6
6
  msgstr ""
7
7
  "Project-Id-Version: Odoo Server 16.0\n"
8
8
  "Report-Msgid-Bugs-To: \n"
9
- "PO-Revision-Date: 2025-03-30 21:06+0000\n"
9
+ "PO-Revision-Date: 2025-04-14 13:24+0000\n"
10
10
  "Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
11
11
  "Language-Team: none\n"
12
12
  "Language: it\n"
@@ -14,7 +14,7 @@ msgstr ""
14
14
  "Content-Type: text/plain; charset=UTF-8\n"
15
15
  "Content-Transfer-Encoding: \n"
16
16
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
- "X-Generator: Weblate 5.10.2\n"
17
+ "X-Generator: Weblate 5.10.4\n"
18
18
 
19
19
  #. module: sale_blanket_order
20
20
  #. odoo-python
@@ -38,12 +38,12 @@ msgstr ""
38
38
  #. module: sale_blanket_order
39
39
  #: model:ir.actions.report,print_report_name:sale_blanket_order.report_blanket_order
40
40
  msgid "'Blanket Order - %s' % object.name"
41
- msgstr "'Ordine aperto - %s' % object.name"
41
+ msgstr "'Ordine quadro - %s' % object.name"
42
42
 
43
43
  #. module: sale_blanket_order
44
44
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document
45
45
  msgid "<span>Blanket Order # </span>"
46
- msgstr "<span>Ordine aperto #</span>"
46
+ msgstr "<span>Ordine quadro #</span>"
47
47
 
48
48
  #. module: sale_blanket_order
49
49
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document
@@ -174,40 +174,40 @@ msgstr "Riga ordine aperto"
174
174
  #: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order_wizard__blanket_order_id
175
175
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.view_blanket_order_form
176
176
  msgid "Blanket Order"
177
- msgstr "Ordine aperto"
177
+ msgstr "Ordine quadro"
178
178
 
179
179
  #. module: sale_blanket_order
180
180
  #: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_line
181
181
  msgid "Blanket Order Line"
182
- msgstr "Riga ordine aperto"
182
+ msgstr "Riga ordine quadro"
183
183
 
184
184
  #. module: sale_blanket_order
185
185
  #: model:ir.actions.act_window,name:sale_blanket_order.act_open_sale_blanket_order_lines_view_tree
186
186
  #: model:ir.ui.menu,name:sale_blanket_order.menu_sale_blanket_order_line
187
187
  msgid "Blanket Order Lines"
188
- msgstr "Righe ordine aperto"
188
+ msgstr "Righe ordine quadro"
189
189
 
190
190
  #. module: sale_blanket_order
191
191
  #: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order_line__blanket_order_line
192
192
  msgid "Blanket Order line"
193
- msgstr "Riga ordine aperto"
193
+ msgstr "Riga ordine quadro"
194
194
 
195
195
  #. module: sale_blanket_order
196
196
  #: model:ir.actions.act_window,name:sale_blanket_order.act_open_blanket_order_view
197
197
  #: model:ir.ui.menu,name:sale_blanket_order.menu_blanket_order_config
198
198
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view
199
199
  msgid "Blanket Orders"
200
- msgstr "Ordini aperti"
200
+ msgstr "Ordini quadro"
201
201
 
202
202
  #. module: sale_blanket_order
203
203
  #: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard
204
204
  msgid "Blanket order wizard"
205
- msgstr "Procedura guidata ordine aperto"
205
+ msgstr "Procedura guidata ordine quadro"
206
206
 
207
207
  #. module: sale_blanket_order
208
208
  #: model:ir.model,name:sale_blanket_order.model_sale_blanket_order_wizard_line
209
209
  msgid "Blanket order wizard line"
210
- msgstr "Riga procedura guidata ordine aperto"
210
+ msgstr "Riga procedura guidata ordine quadro"
211
211
 
212
212
  #. module: sale_blanket_order
213
213
  #. odoo-python
@@ -216,7 +216,7 @@ msgstr "Riga procedura guidata ordine aperto"
216
216
  msgid ""
217
217
  "Can not create Sale Order from Blanket Order lines with different currencies"
218
218
  msgstr ""
219
- "Non si possono creare ordini di vendita da righe ordine aperto con valute "
219
+ "Non si possono creare ordini di vendita da righe ordine quadro con valute "
220
220
  "diverse"
221
221
 
222
222
  #. module: sale_blanket_order
@@ -234,14 +234,14 @@ msgid ""
234
234
  "has no remaining quantity."
235
235
  msgstr ""
236
236
  "Non è possibile confermare l'ordine %s in quanto una delle righe si "
237
- "riferisce ad un ordine aperto che non ha quantità rimanenti."
237
+ "riferisce ad un ordine quadro che non ha quantità rimanenti."
238
238
 
239
239
  #. module: sale_blanket_order
240
240
  #: model_terms:ir.actions.act_window,help:sale_blanket_order.act_open_blanket_order_view
241
241
  msgid ""
242
242
  "Click to create a blanket order that can be converted into a sale order."
243
243
  msgstr ""
244
- "Cliccare per creare un ordine aperto che può essere convertito in un ordine "
244
+ "Cliccare per creare un ordine quadro che può essere convertito in un ordine "
245
245
  "di vendita."
246
246
 
247
247
  #. module: sale_blanket_order
@@ -342,7 +342,7 @@ msgstr "Disabilita l'aggiunta di altre righe negli OV"
342
342
  #: model:res.groups,name:sale_blanket_order.blanket_orders_disable_adding_lines
343
343
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_config_settings_form_view
344
344
  msgid "Disable adding more lines to SOs from Blanket Orders"
345
- msgstr "Disabilita l'aggiunta di altre righe negli OV da ordini aperti"
345
+ msgstr "Disabilita l'aggiunta di altre righe negli OV da ordini quadro"
346
346
 
347
347
  #. module: sale_blanket_order
348
348
  #: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__display_name
@@ -375,7 +375,7 @@ msgstr "Bozza"
375
375
  #. module: sale_blanket_order
376
376
  #: model:ir.actions.server,name:sale_blanket_order.expired_blanket_orders_cron_ir_actions_server
377
377
  msgid "Expire Blanket Orders"
378
- msgstr "Scadenza ordini aperti"
378
+ msgstr "Scadenza ordini quadro"
379
379
 
380
380
  #. module: sale_blanket_order
381
381
  #: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order__state__expired
@@ -616,7 +616,7 @@ msgstr "Quantità ordinata"
616
616
  #. module: sale_blanket_order
617
617
  #: model:ir.model.fields,field_description:sale_blanket_order.field_sale_order__blanket_order_id
618
618
  msgid "Origin blanket order"
619
- msgstr "Origine ordine aperto"
619
+ msgstr "Origine ordine quadro"
620
620
 
621
621
  #. module: sale_blanket_order
622
622
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.report_blanketorder_document
@@ -743,17 +743,17 @@ msgstr "Utente responsabile"
743
743
  #: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0
744
744
  #, python-format
745
745
  msgid "Sale Blanket Order %s is not open"
746
- msgstr "L'ordine di vendita aperto %s non è aperto"
746
+ msgstr "L'ordine quadro di vendita %s non è aperto"
747
747
 
748
748
  #. module: sale_blanket_order
749
749
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_form
750
750
  msgid "Sale Blanket Order Line"
751
- msgstr "Riga ordine di vendita aperto"
751
+ msgstr "Riga ordine quadro di vendita"
752
752
 
753
753
  #. module: sale_blanket_order
754
754
  #: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__line_count
755
755
  msgid "Sale Blanket Order Line count"
756
- msgstr "Numero righe ordine di vendita aperto"
756
+ msgstr "Numero righe ordine quadro di vendita"
757
757
 
758
758
  #. module: sale_blanket_order
759
759
  #: model:ir.model.fields,field_description:sale_blanket_order.field_sale_blanket_order__sale_count
@@ -817,7 +817,7 @@ msgstr "Data schedulata"
817
817
  #. module: sale_blanket_order
818
818
  #: model_terms:ir.ui.view,arch_db:sale_blanket_order.sale_blanket_order_line_search
819
819
  msgid "Search Sale Blanket Order Line"
820
- msgstr "Cerca riga ordine di vendita aperto"
820
+ msgstr "Cerca riga ordine quadro di vendita"
821
821
 
822
822
  #. module: sale_blanket_order
823
823
  #: model:ir.model.fields.selection,name:sale_blanket_order.selection__sale_blanket_order_line__display_type__line_section
@@ -889,7 +889,7 @@ msgstr "Termini e condizioni"
889
889
  msgid ""
890
890
  "The currency of the blanket order must match with that of the sale order."
891
891
  msgstr ""
892
- "La valuta dell'ordine aperto deve corrispondere con quella dell'ordine di "
892
+ "La valuta dell'ordine quadro deve corrispondere con quella dell'ordine di "
893
893
  "vendita."
894
894
 
895
895
  #. module: sale_blanket_order
@@ -897,7 +897,7 @@ msgstr ""
897
897
  #: code:addons/sale_blanket_order/models/sale_orders.py:0
898
898
  #, python-format
899
899
  msgid "The customer must be equal to the blanket order lines customer"
900
- msgstr "Il cliente deve essere lo stesso delle righe dell'ordine aperto"
900
+ msgstr "Il cliente deve essere lo stesso delle righe dell'ordine quadro"
901
901
 
902
902
  #. module: sale_blanket_order
903
903
  #. odoo-python
@@ -905,7 +905,7 @@ msgstr "Il cliente deve essere lo stesso delle righe dell'ordine aperto"
905
905
  #, python-format
906
906
  msgid "The product in the blanket order and in the sales order must match"
907
907
  msgstr ""
908
- "Il prodotto nell'ordine aperto e nell'ordine di vendita deve corrispondere"
908
+ "Il prodotto nell'ordine quadro e nell'ordine di vendita deve corrispondere"
909
909
 
910
910
  #. module: sale_blanket_order
911
911
  #. odoo-python
@@ -955,8 +955,8 @@ msgid ""
955
955
  "control\n"
956
956
  " the products delivered and control the vendor bills."
957
957
  msgstr ""
958
- "Usa questo menu per ricercare nel tuo ordine aperto. Per ogni ordine "
959
- "aperto,\n"
958
+ "Usa questo menu per ricercare nel tuo ordine quadro. Per ogni ordine quadro,"
959
+ "\n"
960
960
  " puoi tracciare le relative conversazioni con il cliente, "
961
961
  "controllare\n"
962
962
  " i prodotti spediti e controllare le fatture del venditore."
@@ -1015,7 +1015,7 @@ msgid ""
1015
1015
  "You can not delete a blanket order with opened sale orders! Try to cancel "
1016
1016
  "them before."
1017
1017
  msgstr ""
1018
- "Non puoi annullare un ordine aperto con ordini di vendita aperti! Prova ad "
1018
+ "Non puoi annullare un ordine quadro con ordini di vendita aperti! Prova ad "
1019
1019
  "annullarli prima."
1020
1020
 
1021
1021
  #. module: sale_blanket_order
@@ -1034,7 +1034,7 @@ msgstr ""
1034
1034
  #: code:addons/sale_blanket_order/wizard/create_sale_orders.py:0
1035
1035
  #, python-format
1036
1036
  msgid "You can't create a sale order from an expired blanket order!"
1037
- msgstr "Non puoi creare un ordine di vendita da un ordine aperto scaduto!"
1037
+ msgstr "Non puoi creare un ordine di vendita da un ordine quadro scaduto!"
1038
1038
 
1039
1039
  #. module: sale_blanket_order
1040
1040
  #. odoo-python
@@ -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:3ed0d98f6c7baa76799bdb56bea83ceacdd6dd8f33e5050b56cd1c602d366edb
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&amp;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": [(6, 0, line.taxes_id.ids)],
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.0.5
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:3ed0d98f6c7baa76799bdb56bea83ceacdd6dd8f33e5050b56cd1c602d366edb
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
- - Vendor
71
+ - Vendor
72
72
 
73
- - Salesperson
73
+ - Salesperson
74
74
 
75
- - Payment Terms
75
+ - Payment Terms
76
76
 
77
- - Validity date
77
+ - Validity date
78
78
 
79
- - Order lines:
79
+ - Order lines:
80
80
 
81
- - Product
82
- - Accorded price
83
- - Original, Ordered, Invoiced, Received and Remaining quantities
81
+ - Product
82
+ - Accorded price
83
+ - Original, Ordered, Invoiced, Received and Remaining quantities
84
84
 
85
- - Terms and Conditions of the Blanket Order
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
- - Closer Validity date
116
- - Remaining quantity > Quantity introduced in the Sale Order line
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
- - André Pereira <github@andreparames.com> (https://www.acsone.eu/)
148
+ - André Pereira <github@andreparames.com> (https://www.acsone.eu/)
149
149
 
150
- - Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
150
+ - Adrià Gil Sorribes <adria.gil@eficent.com> (https://www.eficent.com/)
151
151
 
152
- - Jordi Ballester Alomar <jordi.ballester@eficent.com>
152
+ - Jordi Ballester Alomar <jordi.ballester@eficent.com>
153
153
 
154
- - Alex Comba <alex.comba@agilebg.com> (https://www.agilebg.com/)
154
+ - Alex Comba <alex.comba@agilebg.com> (https://www.agilebg.com/)
155
155
 
156
- - Codeforward (https://www.codeforward.nl/):
156
+ - Codeforward (https://www.codeforward.nl/):
157
157
 
158
- - Jasper Jumelet <jasper.jumelet@codeforward.nl>
159
- - Chris Bergman <chris.bergman@codeforward.nl>
158
+ - Jasper Jumelet <jasper.jumelet@codeforward.nl>
159
+ - Chris Bergman <chris.bergman@codeforward.nl>
160
160
 
161
- - `Trobz <https://trobz.com>`__:
161
+ - `Trobz <https://trobz.com>`__:
162
162
 
163
- - Nguyễn Minh Chiến <chien@trobz.com>
163
+ - Nguyễn Minh Chiến <chien@trobz.com>
164
164
 
165
165
  Other credits
166
166
  -------------
@@ -1,15 +1,15 @@
1
- odoo/addons/sale_blanket_order/README.rst,sha256=QcPtemW9XBCSsZmcVpD_tw_XfMvKlcOX4DlkcuEVG58,6092
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=7omPRPYmeDvu2qtYzpnFSWDJQUTNqelnXJzTB9H2fks,856
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
7
7
  odoo/addons/sale_blanket_order/i18n/es.po,sha256=Zn28Mp-q9uPRrI_BaThlX0_O9ePlViYgbbcQG-Xh9OY,44266
8
8
  odoo/addons/sale_blanket_order/i18n/fr.po,sha256=19v5XO5y3R-tQ6PSR5CXzU8oGqsEkqXRxNV6xN3hhWw,43949
9
9
  odoo/addons/sale_blanket_order/i18n/fr_FR.po,sha256=JTz8P_yfKIjO3AoXMbSam_GnKrAy2_cuT0aQbk3Ghyc,43916
10
- odoo/addons/sale_blanket_order/i18n/it.po,sha256=HVmOlshhj2v1zSWoFDBlqUOxKIutmXSuL55C3bScepM,43720
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=OwVvreyUm_VnAbDXqIjPCf58fIdxAVz3uYTCIjA8uTM,38576
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=2WR20YTnd77JS-cWOgLm3HVION6sAPA-xjW8_0orw9A,17010
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=WfTjqHRZ9QTldo2YlEw0nUozhQzmZx2aCzE0LF7ufdw,16322
35
- odoo/addons/sale_blanket_order/tests/test_sale_order.py,sha256=2U-s3VZ3Dqbr8o3n4ncWALfY4xWpRWwccWGnN6Hu0-g,7449
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=5sZsHVi-Cvz4y9eee5iEqZbiAnbEMu53BGkY2H4medQ,8149
42
- odoo/addons/sale_blanket_order/wizard/create_sale_orders.xml,sha256=GjPlsYRKvN45F7ZSR-j7yJCW0U9OfBi-dIhRV8YqM8M,2091
43
- odoo_addon_sale_blanket_order-17.0.1.1.0.5.dist-info/METADATA,sha256=n0MITVOucDlMRBbJGg8PXHsQ4GSgTgGXre55XKfYPyk,6604
44
- odoo_addon_sale_blanket_order-17.0.1.1.0.5.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
45
- odoo_addon_sale_blanket_order-17.0.1.1.0.5.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
46
- odoo_addon_sale_blanket_order-17.0.1.1.0.5.dist-info/RECORD,,
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,,