Skip to content

Commit 8b21bda

Browse files
committedJul 12, 2021
[MIG] delivery_carrier_deposit: Migration to 14.0
1 parent c63dc5b commit 8b21bda

17 files changed

+141
-142
lines changed
 

‎delivery_carrier_deposit/__manifest__.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,25 @@
33

44
{
55
"name": "Delivery Deposit",
6-
"version": "10.0.0.1.2",
6+
"version": "14.0.1.0.0",
77
"category": "Delivery",
88
"author": "Akretion,Odoo Community Association (OCA)",
99
"maintainer": "Akretion",
1010
"summary": "Create deposit slips",
1111
"depends": [
12-
"base_delivery_carrier_label",
12+
"delivery",
1313
],
1414
"website": "https://github.com/OCA/delivery-carrier",
1515
"data": [
16-
"views/stock_view.xml",
17-
"wizards/deposit.xml",
16+
"views/deposit_slip_view.xml",
17+
"views/stock_picking_view.xml",
18+
"wizards/delivery_deposit_wizard_view.xml",
1819
"data/ir_sequence_data.xml",
1920
"report/report.xml",
2021
"report/deposit_slip.xml",
2122
"security/ir.model.access.csv",
2223
"security/model_security.xml",
2324
],
24-
"demo": [],
2525
"installable": True,
2626
"license": "AGPL-3",
2727
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
from . import stock_picking
12
from . import deposit_slip

‎delivery_carrier_deposit/models/deposit_slip.py

+10-53
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,27 @@
77

88
from odoo import api, fields, models
99

10-
import odoo.addons.decimal_precision as dp
11-
1210

1311
class DepositSlip(models.Model):
1412
_name = "deposit.slip"
1513
_description = "Deposit Slip"
1614
_order = "id desc"
17-
_inherit = ["mail.thread"]
18-
_track = {
19-
"state": {
20-
"delivery_carrier_deposit.deposit_slip_done": lambda self, cr, uid, obj, ctx=None: obj.state
21-
== "done",
22-
}
23-
}
15+
_inherit = ["mail.thread", "mail.activity.mixin"]
2416

25-
@api.one
2617
@api.depends("picking_ids")
27-
def _compute_deposit_slip(self):
18+
def _compute_weight(self):
2819
weight = 0.0
29-
number_of_packages = 0
3020
for picking in self.picking_ids:
31-
number_of_packages += picking.number_of_packages
32-
weight += picking.weight
21+
weight += picking.shipping_weight
3322
self.weight = weight
34-
self.number_of_packages = number_of_packages
35-
36-
@api.model
37-
def _get_carrier_type_selection(self):
38-
return self.env["delivery.carrier"]._get_carrier_type_selection()
3923

4024
name = fields.Char(
4125
readonly=True, states={"draft": [("readonly", False)]}, default="/", copy=False
4226
)
43-
carrier_type = fields.Selection(
44-
selection="_get_carrier_type_selection",
45-
string="Type",
46-
readonly=True,
47-
required=True,
48-
copy=False,
49-
help="Carrier type (combines several delivery methods)",
27+
delivery_type = fields.Selection(
28+
selection=lambda self: self.env["delivery.carrier"]
29+
._fields["delivery_type"]
30+
.selection
5031
)
5132
picking_ids = fields.One2many(
5233
comodel_name="stock.picking",
@@ -67,18 +48,11 @@ def _get_carrier_type_selection(self):
6748
company_id = fields.Many2one(
6849
comodel_name="res.company",
6950
string="Company",
70-
default=lambda self: self.env["res.company"]._company_default_get(
71-
"deposit.slip"
72-
),
51+
default=lambda self: self.env.company,
7352
)
7453
weight = fields.Float(
7554
string="Total Weight",
76-
compute="_compute_deposit_slip",
77-
digits=dp.get_precision("Stock Weight"),
78-
readonly=True,
79-
)
80-
number_of_packages = fields.Integer(
81-
string="Number of Packages", compute="_compute_deposit_slip", readonly=True
55+
compute="_compute_weight",
8256
)
8357

8458
_sql_constraints = [
@@ -95,32 +69,15 @@ def create(self, vals=None):
9569
vals = {}
9670
if vals.get("name", "/") == "/":
9771
vals["name"] = self.env["ir.sequence"].next_by_code("delivery.deposit")
98-
return super(DepositSlip, self).create(vals)
72+
return super().create(vals)
9973

100-
@api.multi
10174
def create_edi_file(self):
10275
"""
10376
Override this method for the proper carrier
10477
"""
10578
return True
10679

107-
@api.multi
10880
def validate_deposit(self):
10981
self.create_edi_file()
11082
self.write({"state": "done"})
11183
return True
112-
113-
114-
class StockPicking(models.Model):
115-
_inherit = "stock.picking"
116-
117-
deposit_slip_id = fields.Many2one("deposit.slip", "Deposit Slip")
118-
119-
120-
class DeliveryCarrier(models.Model):
121-
_inherit = "delivery.carrier"
122-
123-
deposit_slip = fields.Boolean(
124-
string="Deposit Slip",
125-
help="Allow to create a 'Deposit Slip' report on delivery orders",
126-
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
2+
3+
from odoo import fields, models
4+
5+
6+
class StockPicking(models.Model):
7+
_inherit = "stock.picking"
8+
9+
deposit_slip_id = fields.Many2one("deposit.slip", "Deposit Slip")

‎delivery_carrier_deposit/report/deposit_slip.xml

+3-6
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<template id="report_generic_deposit_slip">
55

6-
<t t-call="report.html_container">
6+
<t t-call="web.html_container">
77
<t t-call="report.internal_layout">
88

99

@@ -13,7 +13,7 @@
1313

1414
<h1>Deposit Slip n°<span t-field="o.name" /></h1>
1515

16-
<div>Delivery Method Type: <span t-field="o.carrier_type" /></div>
16+
<div>Delivery Method Type: <span t-field="o.delivery_type" /></div>
1717
<div>Customer No.: </div>
1818
<div>Account Name: <span t-field="user.company_id.name" /></div>
1919
<div>Date: <span t-field="o.create_date" /></div>
@@ -27,7 +27,6 @@
2727
<th class="small">ZIP</th>
2828
<th class="small">Country</th>
2929
<th class="small">Weight<br />(kg)</th>
30-
<th class="small">Nr of<br />packages</th>
3130
</tr>
3231
</thead>
3332
<tbody>
@@ -39,13 +38,11 @@
3938
<td><span t-field="p.partner_id.zip" /></td>
4039
<td><span t-field="p.partner_id.country_id.code" /></td>
4140
<td><span t-field="p.weight" /></td>
42-
<td><span t-field="p.number_of_packages" /></td>
4341
</tr>
4442

4543
</tbody>
4644
</table>
4745
<div>Total Weight: <span t-field="o.weight" /> kg</div>
48-
<div>Total Number of Packages: <span t-field="o.number_of_packages" /></div>
4946
</div>
5047
</t>
5148

@@ -55,7 +52,7 @@
5552
</template>
5653

5754
<template id="report_generic_deposit_slip_trans">
58-
<t t-call="report.html_container">
55+
<t t-call="web.html_container">
5956
<t t-foreach="doc_ids" t-as="doc_id">
6057
<t
6158
t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'delivery_carrier_deposit.report_generic_deposit_slip')"
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
22
"access_deposit_slip_user","access_deposit_slip","model_deposit_slip","base.group_user",1,0,0,0
33
"access_deposit_slip_stock_user","access_deposit_slip_stock_user","model_deposit_slip","stock.group_stock_user",1,1,1,1
4+
"access_deposit_slip_wizard_stock_user","access_deposit_slip_wizard_stock_user","model_delivery_deposit_wizard","stock.group_stock_user",1,1,1,1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8" ?>
2-
<openerp>
3-
<data>
2+
<odoo>
43

54
<!-- Multi - Company Rules -->
65

@@ -9,8 +8,7 @@
98
<field name="model_id" ref="model_deposit_slip" />
109
<field name="global" eval="True" />
1110
<field
12-
name="domain_force"
13-
>['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
11+
name="domain_force"
12+
>['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
1413
</record>
15-
</data>
16-
</openerp>
14+
</odoo>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import test_deposit_slip
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
2+
from odoo import fields, models
3+
4+
5+
class FakeDeliveryCarrier(models.Model):
6+
_inherit = "delivery.carrier"
7+
8+
delivery_type = fields.Selection(
9+
selection_add=[("test", "Test Carrier")], ondelete={"test": "set default"}
10+
)
11+
12+
def test_send_shipping(self, pickings):
13+
res = []
14+
for _p in pickings:
15+
res = res + [{"exact_price": 0.0, "tracking_number": False}]
16+
return res
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
2+
3+
from odoo_test_helper import FakeModelLoader
4+
5+
from odoo.tests.common import SavepointCase
6+
7+
8+
class TestDepositSlip(SavepointCase):
9+
@classmethod
10+
def setUpClass(cls):
11+
super().setUpClass()
12+
cls.loader = FakeModelLoader(cls.env, cls.__module__)
13+
cls.loader.backup_registry()
14+
15+
# The fake class is imported here !! After the backup_registry
16+
from .models import FakeDeliveryCarrier
17+
18+
cls.loader.update_registry((FakeDeliveryCarrier,))
19+
20+
delivery_free_product = cls.env.ref("delivery.product_product_delivery")
21+
cls.carrier = cls.env["delivery.carrier"].create(
22+
{
23+
"name": "Test Carrier",
24+
"delivery_type": "test",
25+
"product_id": delivery_free_product.id,
26+
}
27+
)
28+
cls.delivery_order = cls.env.ref("stock.outgoing_shipment_main_warehouse4")
29+
cls.delivery_order.write({"carrier_id": cls.carrier.id})
30+
31+
def test_delivery_slip_creation(self):
32+
self.delivery_order._action_done()
33+
wizard = self.env["delivery.deposit.wizard"].create(
34+
{
35+
"delivery_type": "test",
36+
}
37+
)
38+
wizard.create_deposit_slip()
39+
deposit = self.env["deposit.slip"].search([("state", "=", "draft")])
40+
self.assertEqual(len(deposit), 1)
41+
self.assertEqual(len(deposit.picking_ids), 1)
42+
self.assertEqual(deposit.weight, self.delivery_order.shipping_weight)
43+
deposit.validate_deposit()
44+
self.assertEqual(deposit.state, "done")

0 commit comments

Comments
 (0)