odoo-addon-delivery-ups-oca 17.0.1.0.0.2__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.
Files changed (26) hide show
  1. odoo/addons/delivery_ups_oca/README.rst +147 -0
  2. odoo/addons/delivery_ups_oca/__init__.py +3 -0
  3. odoo/addons/delivery_ups_oca/__manifest__.py +26 -0
  4. odoo/addons/delivery_ups_oca/data/stock_package_type_data.xml +120 -0
  5. odoo/addons/delivery_ups_oca/i18n/delivery_ups_oca.pot +399 -0
  6. odoo/addons/delivery_ups_oca/i18n/it.po +471 -0
  7. odoo/addons/delivery_ups_oca/models/__init__.py +5 -0
  8. odoo/addons/delivery_ups_oca/models/delivery_carrier.py +213 -0
  9. odoo/addons/delivery_ups_oca/models/stock_package_type.py +9 -0
  10. odoo/addons/delivery_ups_oca/models/stock_picking.py +14 -0
  11. odoo/addons/delivery_ups_oca/models/ups_request.py +415 -0
  12. odoo/addons/delivery_ups_oca/readme/CONFIGURE.md +17 -0
  13. odoo/addons/delivery_ups_oca/readme/CONTRIBUTORS.md +9 -0
  14. odoo/addons/delivery_ups_oca/readme/DESCRIPTION.md +10 -0
  15. odoo/addons/delivery_ups_oca/readme/ROADMAP.md +2 -0
  16. odoo/addons/delivery_ups_oca/readme/USAGE.md +12 -0
  17. odoo/addons/delivery_ups_oca/static/description/icon.png +0 -0
  18. odoo/addons/delivery_ups_oca/static/description/index.html +498 -0
  19. odoo/addons/delivery_ups_oca/tests/__init__.py +3 -0
  20. odoo/addons/delivery_ups_oca/tests/test_delivery_ups.py +165 -0
  21. odoo/addons/delivery_ups_oca/views/delivery_carrier_view.xml +84 -0
  22. odoo/addons/delivery_ups_oca/views/stock_picking_view.xml +24 -0
  23. odoo_addon_delivery_ups_oca-17.0.1.0.0.2.dist-info/METADATA +166 -0
  24. odoo_addon_delivery_ups_oca-17.0.1.0.0.2.dist-info/RECORD +26 -0
  25. odoo_addon_delivery_ups_oca-17.0.1.0.0.2.dist-info/WHEEL +5 -0
  26. odoo_addon_delivery_ups_oca-17.0.1.0.0.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,471 @@
1
+ # Translation of Odoo Server.
2
+ # This file contains the translation of the following modules:
3
+ # * delivery_ups_oca
4
+ #
5
+ msgid ""
6
+ msgstr ""
7
+ "Project-Id-Version: Odoo Server 14.0\n"
8
+ "Report-Msgid-Bugs-To: \n"
9
+ "Last-Translator: Automatically generated\n"
10
+ "Language-Team: none\n"
11
+ "Language: it\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: \n"
15
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
16
+
17
+ #. module: delivery_ups_oca
18
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__02
19
+ msgid "2nd Day Air"
20
+ msgstr ""
21
+
22
+ #. module: delivery_ups_oca
23
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__59
24
+ msgid "2nd Day Air A.M."
25
+ msgstr ""
26
+
27
+ #. module: delivery_ups_oca
28
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__12
29
+ msgid "3 Day Select"
30
+ msgstr ""
31
+
32
+ #. module: delivery_ups_oca
33
+ #: code:addons/delivery_ups_oca/models/ups_request.py:0
34
+ #, python-format
35
+ msgid "Both Client ID and Client Secret must be set in UPS delivery carriers."
36
+ msgstr ""
37
+
38
+ #. module: delivery_ups_oca
39
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_package_dimension_code__cm
40
+ msgid "CM"
41
+ msgstr ""
42
+
43
+ #. module: delivery_ups_oca
44
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_product_packaging__package_carrier_type
45
+ msgid "Carrier"
46
+ msgstr ""
47
+
48
+ #. module: delivery_ups_oca
49
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_cod_funds_code__1
50
+ msgid "Cash"
51
+ msgstr ""
52
+
53
+ #. module: delivery_ups_oca
54
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
55
+ msgid "Cash On Delivery"
56
+ msgstr ""
57
+
58
+ #. module: delivery_ups_oca
59
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_cod_funds_code__9
60
+ msgid "Check/Cashier Check/Money Order"
61
+ msgstr ""
62
+
63
+ #. module: delivery_ups_oca
64
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
65
+ msgid "Credentials"
66
+ msgstr ""
67
+
68
+ #. module: delivery_ups_oca
69
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_default_packaging_id
70
+ msgid "Default Packaging Type"
71
+ msgstr ""
72
+
73
+ #. module: delivery_ups_oca
74
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__display_name
75
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_product_packaging__display_name
76
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_stock_picking__display_name
77
+ msgid "Display Name"
78
+ msgstr ""
79
+
80
+ #. module: delivery_ups_oca
81
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_file_format__epl
82
+ msgid "EPL"
83
+ msgstr ""
84
+
85
+ #. module: delivery_ups_oca
86
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__m6
87
+ msgid "Economy Mail Innovations"
88
+ msgstr ""
89
+
90
+ #. module: delivery_ups_oca
91
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__08
92
+ msgid "Expedited"
93
+ msgstr ""
94
+
95
+ #. module: delivery_ups_oca
96
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__m4
97
+ msgid "Expedited Mail Innovations"
98
+ msgstr ""
99
+
100
+ #. module: delivery_ups_oca
101
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__07
102
+ msgid "Express"
103
+ msgstr ""
104
+
105
+ #. module: delivery_ups_oca
106
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__54
107
+ msgid "Express Plus"
108
+ msgstr ""
109
+
110
+ #. module: delivery_ups_oca
111
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_file_format
112
+ msgid "File format"
113
+ msgstr ""
114
+
115
+ #. module: delivery_ups_oca
116
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__m2
117
+ msgid "First Class Mail"
118
+ msgstr ""
119
+
120
+ #. module: delivery_ups_oca
121
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_file_format__gif
122
+ msgid "GIF"
123
+ msgstr ""
124
+
125
+ #. module: delivery_ups_oca
126
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__03
127
+ msgid "Ground"
128
+ msgstr ""
129
+
130
+ #. module: delivery_ups_oca
131
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__id
132
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_product_packaging__id
133
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_stock_picking__id
134
+ msgid "ID"
135
+ msgstr ""
136
+
137
+ #. module: delivery_ups_oca
138
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_package_dimension_code__in
139
+ msgid "IN"
140
+ msgstr ""
141
+
142
+ #. module: delivery_ups_oca
143
+ #: model:ir.model.fields,help:delivery_ups_oca.field_delivery_carrier__ups_tracking_state_update_sync
144
+ msgid ""
145
+ "If checked, odoo try to state update from picking according to UPS "
146
+ "webservice (you will necessary to activate tracking API)"
147
+ msgstr ""
148
+
149
+ #. module: delivery_ups_oca
150
+ #: model:ir.model.fields,help:delivery_ups_oca.field_delivery_carrier__ups_package_dimension_code
151
+ msgid ""
152
+ "Is necessary to set dimension code from packages in shipping creation "
153
+ "process"
154
+ msgstr ""
155
+
156
+ #. module: delivery_ups_oca
157
+ #: model:ir.model.fields,help:delivery_ups_oca.field_delivery_carrier__ups_package_weight_code
158
+ msgid ""
159
+ "Is necessary to set weight code from packages in shipping creation process"
160
+ msgstr ""
161
+
162
+ #. module: delivery_ups_oca
163
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_package_weight_code__kgs
164
+ msgid "KGS"
165
+ msgstr ""
166
+
167
+ #. module: delivery_ups_oca
168
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_package_weight_code__lbs
169
+ msgid "LBS"
170
+ msgstr ""
171
+
172
+ #. module: delivery_ups_oca
173
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
174
+ msgid "Label"
175
+ msgstr ""
176
+
177
+ #. module: delivery_ups_oca
178
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier____last_update
179
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_product_packaging____last_update
180
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_stock_picking____last_update
181
+ msgid "Last Modified on"
182
+ msgstr ""
183
+
184
+ #. module: delivery_ups_oca
185
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__m7
186
+ msgid "Mail Innovations (MI) Returns"
187
+ msgstr ""
188
+
189
+ #. module: delivery_ups_oca
190
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
191
+ msgid "Misc"
192
+ msgstr ""
193
+
194
+ #. module: delivery_ups_oca
195
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__01
196
+ msgid "Next Day Air"
197
+ msgstr ""
198
+
199
+ #. module: delivery_ups_oca
200
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__13
201
+ msgid "Next Day Air Saver"
202
+ msgstr ""
203
+
204
+ #. module: delivery_ups_oca
205
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_package_weight_code__ozs
206
+ msgid "OZS"
207
+ msgstr ""
208
+
209
+ #. module: delivery_ups_oca
210
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_package_dimension_code
211
+ msgid "Package Dimension code"
212
+ msgstr ""
213
+
214
+ #. module: delivery_ups_oca
215
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_package_weight_code
216
+ msgid "Package Weight code"
217
+ msgstr ""
218
+
219
+ #. module: delivery_ups_oca
220
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__m3
221
+ msgid "Priority Mail"
222
+ msgstr ""
223
+
224
+ #. module: delivery_ups_oca
225
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__m5
226
+ msgid "Priority Mail Innovations"
227
+ msgstr ""
228
+
229
+ #. module: delivery_ups_oca
230
+ #: model:ir.model,name:delivery_ups_oca.model_product_packaging
231
+ msgid "Product Packaging"
232
+ msgstr ""
233
+
234
+ #. module: delivery_ups_oca
235
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__delivery_type
236
+ msgid "Provider"
237
+ msgstr ""
238
+
239
+ #. module: delivery_ups_oca
240
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_file_format__spl
241
+ msgid "SPL"
242
+ msgstr ""
243
+
244
+ #. module: delivery_ups_oca
245
+ #: code:addons/delivery_ups_oca/models/ups_request.py:0
246
+ #, python-format
247
+ msgid "Sending to UPS: %s"
248
+ msgstr ""
249
+
250
+ #. module: delivery_ups_oca
251
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
252
+ msgid "Service"
253
+ msgstr ""
254
+
255
+ #. module: delivery_ups_oca
256
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_service_code
257
+ msgid "Service code"
258
+ msgstr ""
259
+
260
+ #. module: delivery_ups_oca
261
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_shipper_number
262
+ msgid "Shipper number"
263
+ msgstr ""
264
+
265
+ #. module: delivery_ups_oca
266
+ #: model:ir.model,name:delivery_ups_oca.model_delivery_carrier
267
+ msgid "Shipping Methods"
268
+ msgstr ""
269
+
270
+ #. module: delivery_ups_oca
271
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_tracking_state_update_sync
272
+ msgid "Tracking state update sync"
273
+ msgstr ""
274
+
275
+ #. module: delivery_ups_oca
276
+ #: model:ir.model,name:delivery_ups_oca.model_stock_picking
277
+ msgid "Transfer"
278
+ msgstr ""
279
+
280
+ #. module: delivery_ups_oca
281
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__delivery_type__ups
282
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__product_packaging__package_carrier_type__ups
283
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
284
+ msgid "UPS"
285
+ msgstr ""
286
+
287
+ #. module: delivery_ups_oca
288
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__70
289
+ msgid "UPS Access PointTM Economy"
290
+ msgstr ""
291
+
292
+ #. module: delivery_ups_oca
293
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_cash_on_delivery
294
+ msgid "UPS Cash On Delivery"
295
+ msgstr ""
296
+
297
+ #. module: delivery_ups_oca
298
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_cod_funds_code
299
+ msgid "UPS Cod Funds Code"
300
+ msgstr ""
301
+
302
+ #. module: delivery_ups_oca
303
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__74
304
+ msgid "UPS Express®12:00"
305
+ msgstr ""
306
+
307
+ #. module: delivery_ups_oca
308
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_picking_withcarrier_out_form
309
+ msgid "UPS Label"
310
+ msgstr ""
311
+
312
+ #. module: delivery_ups_oca
313
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__14
314
+ msgid "UPS Next Day Air® Early"
315
+ msgstr ""
316
+
317
+ #. module: delivery_ups_oca
318
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__65
319
+ msgid "UPS Saver"
320
+ msgstr ""
321
+
322
+ #. module: delivery_ups_oca
323
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__11
324
+ msgid "UPS Standard"
325
+ msgstr ""
326
+
327
+ #. module: delivery_ups_oca
328
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__83
329
+ msgid "UPS Today Dedicated Courier"
330
+ msgstr ""
331
+
332
+ #. module: delivery_ups_oca
333
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__85
334
+ msgid "UPS Today Express"
335
+ msgstr ""
336
+
337
+ #. module: delivery_ups_oca
338
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__86
339
+ msgid "UPS Today Express Saver"
340
+ msgstr ""
341
+
342
+ #. module: delivery_ups_oca
343
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__84
344
+ msgid "UPS Today Intercity"
345
+ msgstr ""
346
+
347
+ #. module: delivery_ups_oca
348
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__82
349
+ msgid "UPS Today Standard"
350
+ msgstr ""
351
+
352
+ #. module: delivery_ups_oca
353
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__72
354
+ msgid "UPS Worldwide Economy"
355
+ msgstr ""
356
+
357
+ #. module: delivery_ups_oca
358
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__17
359
+ msgid "UPS Worldwide Economy DDU"
360
+ msgstr ""
361
+
362
+ #. module: delivery_ups_oca
363
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__96
364
+ msgid "UPS Worldwide Express Freight"
365
+ msgstr ""
366
+
367
+ #. module: delivery_ups_oca
368
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_service_code__71
369
+ msgid "UPS Worldwide Express Freight Midday"
370
+ msgstr ""
371
+
372
+ #. module: delivery_ups_oca
373
+ #: model_terms:ir.ui.view,arch_db:delivery_ups_oca.view_delivery_carrier_form
374
+ msgid "Update Token"
375
+ msgstr ""
376
+
377
+ #. module: delivery_ups_oca
378
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_client_id
379
+ msgid "Ups Client"
380
+ msgstr ""
381
+
382
+ #. module: delivery_ups_oca
383
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_client_secret
384
+ msgid "Ups Client Secret"
385
+ msgstr ""
386
+
387
+ #. module: delivery_ups_oca
388
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_token
389
+ msgid "Ups Token"
390
+ msgstr ""
391
+
392
+ #. module: delivery_ups_oca
393
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_token_expiration_date
394
+ msgid "Ups Token Expiration Date"
395
+ msgstr ""
396
+
397
+ #. module: delivery_ups_oca
398
+ #: model:ir.model.fields,field_description:delivery_ups_oca.field_delivery_carrier__ups_use_packages_from_picking
399
+ msgid "Use packages from picking"
400
+ msgstr ""
401
+
402
+ #. module: delivery_ups_oca
403
+ #: model:ir.model.fields.selection,name:delivery_ups_oca.selection__delivery_carrier__ups_file_format__zpl
404
+ msgid "ZPL"
405
+ msgstr ""
406
+
407
+ #. module: delivery_ups_oca
408
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_01
409
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_02
410
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_03
411
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_04
412
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_21
413
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_24
414
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_25
415
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_2a
416
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_2b
417
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_2c
418
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_30
419
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_56
420
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_57
421
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_58
422
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_59
423
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_60
424
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_61
425
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_62
426
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_63
427
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_64
428
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_65
429
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_66
430
+ #: model:product.packaging,weight_uom_name:delivery_ups_oca.product_packaging_ups_67
431
+ msgid "kg"
432
+ msgstr ""
433
+
434
+ #. module: delivery_ups_oca
435
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_01
436
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_02
437
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_03
438
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_04
439
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_21
440
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_24
441
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_25
442
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_2a
443
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_2b
444
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_2c
445
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_30
446
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_56
447
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_57
448
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_58
449
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_59
450
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_60
451
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_61
452
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_62
453
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_63
454
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_64
455
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_65
456
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_66
457
+ #: model:product.packaging,volume_uom_name:delivery_ups_oca.product_packaging_ups_67
458
+ msgid "m³"
459
+ msgstr ""
460
+
461
+ #. module: delivery_ups_oca
462
+ #: code:addons/delivery_ups_oca/models/ups_request.py:0
463
+ #, python-format
464
+ msgid "{} - Error retrieving the tracking information."
465
+ msgstr ""
466
+
467
+ #. module: delivery_ups_oca
468
+ #: code:addons/delivery_ups_oca/models/ups_request.py:0
469
+ #, python-format
470
+ msgid "{} - Warning: {}"
471
+ msgstr ""
@@ -0,0 +1,5 @@
1
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2
+ from . import delivery_carrier
3
+ from . import stock_package_type
4
+ from . import stock_picking
5
+ from . import ups_request
@@ -0,0 +1,213 @@
1
+ # Copyright 2020 Hunki Enterprises BV
2
+ # Copyright 2021-2022 Tecnativa - Víctor Martínez
3
+ # Copyright 2023 ForgeFlow, S.L. - Jordi Ballester
4
+ # Copyright 2024 Sygel - Manuel Regidor
5
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
6
+
7
+ from odoo import fields, models
8
+
9
+ from .ups_request import UpsRequest
10
+
11
+
12
+ class DeliveryCarrier(models.Model):
13
+ _inherit = "delivery.carrier"
14
+
15
+ delivery_type = fields.Selection(
16
+ selection_add=[("ups", "UPS")],
17
+ ondelete={
18
+ "ups": lambda recs: recs.write({"delivery_type": "fixed", "fixed_price": 0})
19
+ },
20
+ )
21
+ ups_file_format = fields.Selection(
22
+ selection=[("GIF", "GIF"), ("ZPL", "ZPL"), ("EPL", "EPL"), ("SPL", "SPL")],
23
+ default="GIF",
24
+ string="File format",
25
+ )
26
+ ups_shipper_number = fields.Char(string="Shipper number")
27
+ ups_service_code = fields.Selection(
28
+ selection=[
29
+ ("01", "Next Day Air"),
30
+ ("02", "2nd Day Air"),
31
+ ("03", "Ground"),
32
+ ("07", "Express"),
33
+ ("08", "Expedited"),
34
+ ("11", "UPS Standard"),
35
+ ("12", "3 Day Select"),
36
+ ("13", "Next Day Air Saver"),
37
+ ("14", "UPS Next Day Air® Early"),
38
+ ("17", "UPS Worldwide Economy DDU"),
39
+ ("54", "Express Plus"),
40
+ ("59", "2nd Day Air A.M."),
41
+ ("65", "UPS Saver"),
42
+ ("M2", "First Class Mail"),
43
+ ("M3", "Priority Mail"),
44
+ ("M4", "Expedited Mail Innovations"),
45
+ ("M5", "Priority Mail Innovations"),
46
+ ("M6", "Economy Mail Innovations"),
47
+ ("M7", "Mail Innovations (MI) Returns"),
48
+ ("70", "UPS Access PointTM Economy"),
49
+ ("71", "UPS Worldwide Express Freight Midday"),
50
+ ("72", "UPS Worldwide Economy"),
51
+ ("74", "UPS Express®12:00"),
52
+ ("82", "UPS Today Standard"),
53
+ ("83", "UPS Today Dedicated Courier"),
54
+ ("84", "UPS Today Intercity"),
55
+ ("85", "UPS Today Express"),
56
+ ("86", "UPS Today Express Saver"),
57
+ ("96", "UPS Worldwide Express Freight"),
58
+ ],
59
+ default="11",
60
+ string="Service code",
61
+ )
62
+ ups_default_packaging_id = fields.Many2one(
63
+ comodel_name="stock.package.type",
64
+ string="Default Packaging Type",
65
+ domain=[("package_carrier_type", "=", "ups")],
66
+ )
67
+ ups_package_dimension_code = fields.Selection(
68
+ selection=[("IN", "IN"), ("CM", "CM")],
69
+ default="IN",
70
+ string="Package Dimension code",
71
+ help="Is necessary to set dimension code from packages in shipping "
72
+ "creation process",
73
+ )
74
+ ups_package_weight_code = fields.Selection(
75
+ selection=[("LBS", "LBS"), ("KGS", "KGS"), ("OZS", "OZS")],
76
+ default="LBS",
77
+ string="Package Weight code",
78
+ help="Is necessary to set weight code from packages in shipping creation "
79
+ "process",
80
+ )
81
+ ups_tracking_state_update_sync = fields.Boolean(
82
+ string="Tracking state update sync",
83
+ help="If checked, odoo try to state update from picking according to UPS "
84
+ "webservice (you will necessary to activate tracking API)",
85
+ )
86
+ ups_use_packages_from_picking = fields.Boolean(string="Use packages from picking")
87
+ ups_client_id = fields.Char()
88
+ ups_client_secret = fields.Char()
89
+ ups_token = fields.Char()
90
+ ups_token_expiration_date = fields.Datetime(readonly=True)
91
+ ups_cash_on_delivery = fields.Boolean(string="UPS Cash On Delivery")
92
+ ups_cod_funds_code = fields.Selection(
93
+ selection=[("1", "Cash"), ("9", "Check/Cashier Check/Money Order")],
94
+ string="UPS Cod Funds Code",
95
+ )
96
+
97
+ def _ups_get_response_price(self, total_charges, currency, company):
98
+ """We need to convert the price if the currency is different."""
99
+ price = float(total_charges["MonetaryValue"])
100
+ if total_charges["CurrencyCode"] != currency.name:
101
+ price = currency._convert(
102
+ price,
103
+ self.env["res.currency"].search(
104
+ [("name", "=", total_charges["CurrencyCode"])]
105
+ ),
106
+ company,
107
+ fields.Date.today(),
108
+ )
109
+ return price
110
+
111
+ def ups_rate_shipment(self, order):
112
+ ups_request = UpsRequest(self)
113
+ response = ups_request.rate_shipment(order)
114
+ price = self._ups_get_response_price(
115
+ response, order.currency_id, order.company_id
116
+ )
117
+ return {
118
+ "success": True,
119
+ "price": price,
120
+ "error_message": False,
121
+ "warning_message": False,
122
+ }
123
+
124
+ def ups_create_shipping(self, picking):
125
+ """Send packages of the picking to UPS
126
+ return a list of dicts {'exact_price': 'tracking_number':}
127
+ suitable for delivery.carrier#send_shipping"""
128
+ self.ensure_one()
129
+ ups_request = UpsRequest(self)
130
+ response = ups_request._send_shipping(picking)
131
+ extra_price = self._ups_get_response_price(
132
+ response["price"], picking.company_id.currency_id, picking.company_id
133
+ )
134
+ picking.carrier_tracking_ref = response["ShipmentIdentificationNumber"]
135
+ # Create label from response
136
+ self._create_ups_label(picking, response["labels"])
137
+ # Return
138
+ return {
139
+ "exact_price": extra_price,
140
+ "tracking_number": picking.carrier_tracking_ref,
141
+ }
142
+
143
+ def ups_send_shipping(self, pickings):
144
+ return [self.ups_create_shipping(p) for p in pickings]
145
+
146
+ def _prepare_ups_label_attachment(self, picking, values):
147
+ return {
148
+ "name": values["name"],
149
+ "type": "binary",
150
+ "datas": values["datas"],
151
+ "res_model": picking._name,
152
+ "res_id": picking.id,
153
+ }
154
+
155
+ def _create_ups_label(self, picking, labels):
156
+ val_list = []
157
+ for label in labels:
158
+ format_code = label["format_code"].upper()
159
+ attachment_name = f"{label['tracking_ref']}-{format_code}.{format_code}"
160
+ val_list.append(
161
+ self._prepare_ups_label_attachment(
162
+ picking,
163
+ {
164
+ "name": attachment_name,
165
+ "datas": label["datas"],
166
+ },
167
+ )
168
+ )
169
+ return self.env["ir.attachment"].create(val_list)
170
+
171
+ def ups_get_label(self, carrier_tracking_ref):
172
+ """Generate label for picking
173
+ :param picking - stock.picking record
174
+ :returns attachment file
175
+ """
176
+ self.ensure_one()
177
+ if not carrier_tracking_ref:
178
+ return False
179
+ ups_request = UpsRequest(self)
180
+ response = ups_request.shipping_label(carrier_tracking_ref)
181
+ # Create attachment to add pdf label
182
+ picking = self.env["stock.picking"].search(
183
+ [("carrier_tracking_ref", "=", carrier_tracking_ref)]
184
+ )
185
+ return self._create_ups_label(picking, response)
186
+
187
+ def ups_get_tracking_link(self, picking):
188
+ return "https://ups.com/WebTracking/track?trackingNumber=%s" % (
189
+ picking.carrier_tracking_ref
190
+ )
191
+
192
+ def ups_cancel_shipment(self, pickings):
193
+ ups_request = UpsRequest(self)
194
+ for picking in pickings.filtered(lambda a: a.carrier_tracking_ref):
195
+ if ups_request.cancel_shipment(pickings):
196
+ picking.write({"tracking_state_history": False})
197
+ return True
198
+
199
+ def ups_tracking_state_update(self, picking):
200
+ self.ensure_one()
201
+ if (
202
+ picking.carrier_id.ups_tracking_state_update_sync
203
+ and picking.carrier_tracking_ref
204
+ ):
205
+ ups_request = UpsRequest(self)
206
+ response = ups_request.tracking_state_update(picking)
207
+ picking.delivery_state = response["delivery_state"]
208
+ picking.tracking_state_history = response["tracking_state_history"]
209
+
210
+ def ups_update_token(self):
211
+ self.ensure_one()
212
+ ups_request = UpsRequest(self)
213
+ ups_request._get_new_token()