Skip to content

Commit cd2eb01

Browse files
author
mathieu
committed
[ADD] delivery carrier label chronopost
1 parent 8132751 commit cd2eb01

File tree

8 files changed

+127
-0
lines changed

8 files changed

+127
-0
lines changed
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import models
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright 2020 Pharmasimple (https://www.pharmasimple.be)
2+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3+
{
4+
"name": "Phs Chronopost",
5+
"category": "Custom",
6+
"summary": "Delivery Chronopost",
7+
"version": "14.0.1.0.0",
8+
"author": "Pharmasimple",
9+
"license": "AGPL-3",
10+
"website": "https://github.com/akretion/phs-addons",
11+
"depends": ["base", "delivery", "delivery_roulier"],
12+
"data": [],
13+
"installable": True,
14+
"application": False,
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from . import delivery
2+
from . import stock_picking
3+
from . import stock_quant_package
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Part of Odoo. See LICENSE file for full copyright and licensing details.
2+
3+
from odoo import fields, models
4+
5+
6+
class DeliveryCarrier(models.Model):
7+
_inherit = "delivery.carrier"
8+
9+
delivery_type = fields.Selection(
10+
selection_add=[("chronopost_fr", "Chronopost FR")],
11+
ondelete={"chronopost_fr": "set default"},
12+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Part of Odoo. See LICENSE file for full copyright and licensing details.
2+
3+
import logging
4+
from datetime import datetime
5+
6+
import pytz
7+
8+
from odoo import fields, models
9+
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
10+
11+
_logger = logging.getLogger(__name__)
12+
13+
14+
class StockPicking(models.Model):
15+
_inherit = "stock.picking"
16+
""" Product Code
17+
44 que pour la Belgique en livraison à domicile
18+
86 que pour la France point relais
19+
2L pour la france domicile
20+
Créer l'url de tracking"""
21+
22+
def _chronopost_fr_get_service(self, account, package=None):
23+
vals = self._roulier_get_service(account, package=package)
24+
25+
vals["customerId"] = str(self.partner_id.id)
26+
vals["labelFormat"] = "Z2D"
27+
vals["service"] = "0"
28+
user_tz = self.env.user.tz
29+
local = pytz.timezone(user_tz)
30+
hour = datetime.strftime(
31+
pytz.utc.localize(
32+
datetime.strptime(
33+
str(fields.Datetime.now(local)), DEFAULT_SERVER_DATETIME_FORMAT
34+
)
35+
).astimezone(local),
36+
"%H",
37+
)
38+
vals["shippingHour"] = int(hour)
39+
vals["shippingId"] = str(self.sale_id.id)
40+
if self.partner_id.delivery_point_ref:
41+
product = "86"
42+
else:
43+
if self.partner_id.country_id.code == "FR":
44+
product = "2L"
45+
else:
46+
product = "44"
47+
vals["product"] = product
48+
49+
return vals
50+
51+
def _chronopost_fr_get_from_address(self, package=None):
52+
vals = self._roulier_get_from_address(package=package)
53+
54+
vals["civility"] = "M"
55+
56+
return vals
57+
58+
def _chronopost_fr_get_to_address(self, package=None):
59+
vals = self._roulier_get_to_address(package=package)
60+
61+
vals["contact_name"] = self.partner_id.name
62+
vals["city"] = self.partner_id.city
63+
vals["country"] = self.partner_id.country_id.code
64+
vals["country_name"] = self.partner_id.country_id.name
65+
vals["name"] = self.partner_id.name
66+
vals["street1"] = self.partner_id.street
67+
vals["zip"] = self.partner_id.zip
68+
vals["email"] = self.partner_id.email
69+
vals["phone"] = self.partner_id.phone
70+
71+
return vals
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Part of Odoo. See LICENSE file for full copyright and licensing details.
2+
3+
import logging
4+
5+
from odoo import models
6+
7+
_logger = logging.getLogger(__name__)
8+
9+
10+
class StockQuantPackage(models.Model):
11+
_inherit = "stock.quant.package"
12+
13+
def _chronopost_fr_get_parcel(self, picking):
14+
vals = self._roulier_get_parcel(picking)
15+
16+
vals["objectType"] = "MAR"
17+
18+
return vals
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../delivery_carrier_chronopost
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import setuptools
2+
3+
setuptools.setup(
4+
setup_requires=['setuptools-odoo'],
5+
odoo_addon=True,
6+
)

0 commit comments

Comments
 (0)