3
3
# Copyright 2024 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
4
4
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
5
5
6
- from odoo import api , fields , models , _
6
+ from odoo import _ , api , fields , models
7
7
8
8
9
9
class SaleOrder (models .Model ):
10
10
_inherit = "sale.order"
11
11
12
- # Migration note: This field is not used anymore and can be dropped in later versions
13
12
available_carrier_ids = fields .Many2many (
14
13
comodel_name = "delivery.carrier" ,
15
14
compute = "_compute_available_carrier_ids" ,
@@ -22,9 +21,6 @@ def _compute_available_carrier_ids(self):
22
21
wizard = self .env ["choose.delivery.carrier" ].new ({"order_id" : sale .id })
23
22
sale .available_carrier_ids = wizard .available_carrier_ids ._origin
24
23
25
- # End migration note
26
-
27
- # Migration Note 17.0: move this section to module sale_order_carrier_auto_assign
28
24
def _set_delivery_carrier (self , set_delivery_line = True ):
29
25
for order in self :
30
26
delivery_wiz_action = order .action_open_delivery_wizard ()
@@ -70,8 +66,6 @@ def _is_auto_set_carrier_on_create(self):
70
66
return False
71
67
return self .company_id .sale_auto_assign_carrier_on_create
72
68
73
- # End migration note
74
-
75
69
def _is_auto_add_delivery_line (self ):
76
70
# When we have the context 'website_id' it means that we are doing the order from
77
71
# e-commerce. So we don't want to add the delivery line automatically.
@@ -84,41 +78,49 @@ def _prepare_delivery_line_vals(self, carrier, price_unit):
84
78
context = {}
85
79
if self .partner_id :
86
80
# set delivery detail in the customer language
87
- context [' lang' ] = self .partner_id .lang
81
+ context [" lang" ] = self .partner_id .lang
88
82
carrier = carrier .with_context (lang = self .partner_id .lang )
89
83
90
84
# Apply fiscal position
91
- taxes = carrier .product_id .taxes_id .filtered (lambda t : t .company_id .id == self .company_id .id )
85
+ taxes = carrier .product_id .taxes_id .filtered (
86
+ lambda t : t .company_id .id == self .company_id .id
87
+ )
92
88
taxes_ids = taxes .ids
93
89
if self .partner_id and self .fiscal_position_id :
94
90
taxes_ids = self .fiscal_position_id .map_tax (taxes ).ids
95
91
96
92
# Create the sales order line
97
93
98
94
if carrier .product_id .description_sale :
99
- so_description = '%s: %s' % (carrier .name , carrier .product_id .description_sale )
95
+ so_description = "%s: %s" % (
96
+ carrier .name ,
97
+ carrier .product_id .description_sale ,
98
+ )
100
99
else :
101
100
so_description = carrier .name
102
101
values = {
103
- ' order_id' : self .id ,
104
- ' name' : so_description ,
105
- ' product_uom_qty' : 1 ,
106
- ' product_uom' : carrier .product_id .uom_id .id ,
107
- ' product_id' : carrier .product_id .id ,
108
- ' tax_id' : [(6 , 0 , taxes_ids )],
109
- ' is_delivery' : True ,
102
+ " order_id" : self .id ,
103
+ " name" : so_description ,
104
+ " product_uom_qty" : 1 ,
105
+ " product_uom" : carrier .product_id .uom_id .id ,
106
+ " product_id" : carrier .product_id .id ,
107
+ " tax_id" : [(6 , 0 , taxes_ids )],
108
+ " is_delivery" : True ,
110
109
}
111
- if carrier .invoice_policy == 'real' :
112
- values ['price_unit' ] = 0
113
- values ['name' ] += _ (' (Estimated Cost: %s )' , self ._format_currency_amount (price_unit ))
110
+ if carrier .invoice_policy == "real" :
111
+ values ["price_unit" ] = 0
112
+ values ["name" ] += _ (
113
+ " (Estimated Cost: %s )" , self ._format_currency_amount (price_unit )
114
+ )
114
115
else :
115
- values [' price_unit' ] = price_unit
116
- if carrier .free_over and self .currency_id .is_zero (price_unit ) :
117
- values [' name' ] += ' \n ' + _ (' Free Shipping' )
116
+ values [" price_unit" ] = price_unit
117
+ if carrier .free_over and self .currency_id .is_zero (price_unit ):
118
+ values [" name" ] += " \n " + _ (" Free Shipping" )
118
119
if self .order_line :
119
- values [' sequence' ] = self .order_line [- 1 ].sequence + 1
120
+ values [" sequence" ] = self .order_line [- 1 ].sequence + 1
120
121
del context
121
122
return values
123
+
122
124
# end of the odoo part
123
125
124
126
def _update_delivery_line (self , delivery_line , price_unit ):
@@ -131,13 +133,13 @@ def _update_delivery_line(self, delivery_line, price_unit):
131
133
# Tax is set with a SET command
132
134
clear = update = False
133
135
for cmd in val :
134
- if cmd [0 ] == fields . Command . SET :
136
+ if cmd [0 ] == 6 :
135
137
if delivery_line [f ].ids != cmd [2 ]:
136
138
update = True
137
139
else :
138
140
clear = True
139
141
if clear :
140
- new_vals [f ] = [fields . Command . CLEAR ] + val
142
+ new_vals [f ] = [( 5 , 0 , 0 ) ] + val
141
143
elif update :
142
144
new_vals [f ] = val
143
145
elif isinstance (field_def , fields .Many2one ):
@@ -194,10 +196,8 @@ def create(self, vals_list):
194
196
.with_context (auto_refresh_delivery = False )
195
197
)
196
198
for order in orders :
197
- # Migration Note 17.0: move this to module sale_order_carrier_auto_assign
198
199
if not order .carrier_id and order ._is_auto_set_carrier_on_create ():
199
200
order ._set_delivery_carrier ()
200
- # End migration note
201
201
order ._auto_refresh_delivery ()
202
202
return orders
203
203
0 commit comments