Skip to content

Commit 8132751

Browse files
author
mathieu
committed
[ADD] delivery carrier label mondial relay
1 parent 99affff commit 8132751

File tree

8 files changed

+117
-0
lines changed

8 files changed

+117
-0
lines changed
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 Mondial Relay",
5+
"category": "Custom",
6+
"summary": "Delivery Mondial Relay",
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=[("mondialrelay", "Mondial Relay")],
11+
ondelete={"mondialrelay": "set default"},
12+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Part of Odoo. See LICENSE file for full copyright and licensing details.
2+
3+
import base64
4+
import logging
5+
6+
import requests
7+
8+
from odoo import models
9+
10+
_logger = logging.getLogger(__name__)
11+
12+
13+
class StockPicking(models.Model):
14+
_inherit = "stock.picking"
15+
16+
def _mondialrelay_get_service(self, account, package=None):
17+
vals = self._roulier_get_service(account, package=package)
18+
19+
vals["pickupMode"] = "CCC"
20+
vals["shippingCountry"] = "BE"
21+
vals["shippingSite"] = self.partner_id.delivery_point_ref
22+
vals["shippingId"] = self.sale_id.id
23+
vals["customerId"] = self.partner_id.id
24+
vals["product"] = "24R"
25+
26+
return vals
27+
28+
def _mondialrelay_get_from_address(self, package=None):
29+
vals = self._roulier_get_from_address(package=package)
30+
31+
vals["lang"] = "FR"
32+
vals["phone"] = self.company_id.phone
33+
34+
return vals
35+
36+
def _mondialrelay_get_to_address(self, package=None):
37+
vals = self._roulier_get_to_address(package=package)
38+
39+
vals["lang"] = "FR"
40+
41+
return vals
42+
43+
def _roulier_generate_labels(self):
44+
res = super(StockPicking, self)._roulier_generate_labels()
45+
if self.delivery_type == "mondialrelay":
46+
if res[0].get("labels")[0].get("file"):
47+
url = res[0].get("labels")[0].get("file")
48+
response = requests.get(url)
49+
if response.status_code == 200:
50+
label = res[0].get("labels")[0]
51+
label["file"] = base64.b64encode(response.content)
52+
label["name"] = "mondial_label.pdf"
53+
label["file_type"] = "pdf"
54+
else:
55+
print("Error: " + response.text)
56+
57+
return res
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
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 _mondialrelay_get_parcel(self, picking):
14+
vals = self._roulier_get_parcel(picking)
15+
weight = 0
16+
for line in self.planned_move_line_ids:
17+
weight += line.product_id.weight
18+
if weight == 0:
19+
weight = 0.1
20+
vals["weight"] = weight
21+
22+
return vals
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../../delivery_carrier_mondial_relay
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)