Skip to content

Commit 41a6935

Browse files
[MIG] l10n_it_accompanying_invoice: Migration to 16.0
Co-authored-by: Simone Rubino <simone.rubino@aion-tech.it> Co-authored-by: OdooNextev <odoo@nextev.it>
1 parent ed17dd3 commit 41a6935

23 files changed

Lines changed: 821 additions & 140 deletions

File tree

l10n_it_accompanying_invoice/README.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,26 @@ Valorizzare i campi del foglio *Informazioni di spedizione*.
5151
Usare l'azione *Fattura accompagnatoria* all'interno della lista di
5252
azioni *Stampa*, nella vista delle fatture.
5353

54+
Known issues / Roadmap
55+
======================
56+
57+
**Italiano**
58+
59+
Odoo Italia non supporta più i moduli alla versione 12.0 perciò non ci
60+
siamo occupati ufficialmente della migrazione dei dati da questa
61+
versione.
62+
63+
Tuttavia se non si volessero perdere i dati già presenti nella versione
64+
12.0 si può provare in un ambiente di test la procedura di migrazione a
65+
proprio rischio e non garantita togliendo la dipendenza dal modulo
66+
``l10n_it_ddt`` nel ``__manifest__.py`` e lanciando gli script di
67+
migrazione commentati. Passaggi:
68+
69+
- decommentare il riferimento a ``hooks.py`` in ``__init__.py``
70+
- decommentare ``external_dependencies`` e ``pre_init_hook`` in
71+
``__manifest__.py``
72+
- spostare la cartella ``readme/migrations`` nella root del modulo
73+
5474
Bug Tracker
5575
===========
5676

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
22

33
from . import models
4+
# from .hooks import pre_absorb_old_module
Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
11
# Copyright 2017 Lorenzo Battistini - Agile Business Group
22
# Copyright 2020 Simone Vanin - Agile Business Group
3+
# Copyright 2023 Simone Rubino - Aion Tech
34
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
45

56
{
67
"name": "ITA - Fattura accompagnatoria",
78
"summary": "Stampa della fattura accompagnatoria",
8-
"version": "12.0.1.0.0",
9+
"version": "16.0.1.0.1",
910
"category": "Accounting",
1011
"website": "https://github.com/OCA/l10n-italy"
11-
"/tree/12.0/l10n_it_accompanying_invoice",
12+
"/tree/16.0/l10n_it_accompanying_invoice",
1213
"author": "Agile Business Group, " "Odoo Community Association (OCA)",
1314
"license": "AGPL-3",
1415
"application": False,
1516
"installable": True,
1617
"depends": [
17-
"l10n_it_ddt",
18+
"l10n_it_delivery_note",
1819
],
1920
"data": [
2021
"views/account.xml",
2122
"views/report_invoice.xml",
2223
],
24+
# "external_dependencies": {
25+
# "python": [
26+
# "openupgradelib",
27+
# ],
28+
# },
29+
# "pre_init_hook": "pre_absorb_old_module",
2330
}
Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
# Copyright 2023 Simone Rubino - Aion Tech
2+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3+
4+
from openupgradelib import openupgrade
5+
6+
from odoo.tools import DotDict
7+
8+
RENAMED_FIELDS = [
9+
[
10+
(
11+
"account.invoice",
12+
"note",
13+
),
14+
(
15+
"account.move",
16+
"delivery_note",
17+
),
18+
],
19+
[
20+
(
21+
"account.invoice",
22+
"date_done",
23+
),
24+
(
25+
"account.move",
26+
"delivery_transport_datetime",
27+
),
28+
],
29+
[
30+
(
31+
"account.invoice",
32+
"carriage_condition_id",
33+
),
34+
(
35+
"account.move",
36+
"delivery_transport_condition_id",
37+
),
38+
],
39+
[
40+
(
41+
"account.invoice",
42+
"goods_description_id",
43+
),
44+
(
45+
"account.move",
46+
"delivery_goods_appearance_id",
47+
),
48+
],
49+
[
50+
(
51+
"account.invoice",
52+
"transportation_reason_id",
53+
),
54+
(
55+
"account.move",
56+
"delivery_transport_reason_id",
57+
),
58+
],
59+
[
60+
(
61+
"account.invoice",
62+
"transportation_method_id",
63+
),
64+
(
65+
"account.move",
66+
"delivery_transport_method_id",
67+
),
68+
],
69+
[
70+
(
71+
"account.invoice",
72+
"carrier_id",
73+
),
74+
(
75+
"account.move",
76+
"delivery_carrier_id",
77+
),
78+
],
79+
[
80+
(
81+
"account.invoice",
82+
"parcels",
83+
),
84+
(
85+
"account.move",
86+
"delivery_packages",
87+
),
88+
],
89+
[
90+
(
91+
"account.invoice",
92+
"weight",
93+
),
94+
(
95+
"account.move",
96+
"delivery_net_weight",
97+
),
98+
],
99+
[
100+
(
101+
"account.invoice",
102+
"gross_weight",
103+
),
104+
(
105+
"account.move",
106+
"delivery_gross_weight",
107+
),
108+
],
109+
[
110+
(
111+
"account.invoice",
112+
"volume",
113+
),
114+
(
115+
"account.move",
116+
"delivery_volume",
117+
),
118+
],
119+
[
120+
(
121+
"account.invoice",
122+
"weight_manual_uom_id",
123+
),
124+
(
125+
"account.move",
126+
"delivery_net_weight_uom_id",
127+
),
128+
],
129+
[
130+
(
131+
"account.invoice",
132+
"gross_weight_uom_id",
133+
),
134+
(
135+
"account.move",
136+
"delivery_gross_weight_uom_id",
137+
),
138+
],
139+
[
140+
(
141+
"account.invoice",
142+
"volume_uom_id",
143+
),
144+
(
145+
"account.move",
146+
"delivery_volume_uom_id",
147+
),
148+
],
149+
]
150+
151+
RENAMED_XMLIDS = [
152+
(
153+
"invoice_form_view_uom",
154+
"view_move_form",
155+
),
156+
(
157+
"invoice_form_view_uom",
158+
"shipping_invoice_report",
159+
),
160+
(
161+
"invoice_form_view_uom",
162+
"shipping_invoice_template",
163+
),
164+
(
165+
"invoice_form_view_uom",
166+
"report_shipping_invoice",
167+
),
168+
]
169+
170+
171+
# def remove_models(cr, model_spec):
172+
# for name in model_spec:
173+
# logged_query(
174+
# cr,
175+
# "DELETE FROM ir_model WHERE model = %s",
176+
# (name,),
177+
# )
178+
179+
180+
def migrate_old_module(cr):
181+
field_spec = []
182+
for renamed_field in RENAMED_FIELDS:
183+
(old_model, old_field), (new_model, new_field) = renamed_field
184+
field_spec.append(
185+
(
186+
old_model,
187+
old_model.replace(".", "_"),
188+
old_field,
189+
new_field,
190+
)
191+
)
192+
openupgrade.rename_fields(
193+
# The method only needs the cursor, not the whole Environment
194+
DotDict(
195+
cr=cr,
196+
),
197+
field_spec,
198+
# Prevent Environment usage
199+
# whenever it will be implemented.
200+
no_deep=True,
201+
)
202+
203+
full_renamed_xmlids = [
204+
(
205+
".".join(("l10n_it_accompanying_invoice", old_xmlid)),
206+
".".join(("l10n_it_accompanying_invoice", new_xmlid)),
207+
)
208+
for old_xmlid, new_xmlid in RENAMED_XMLIDS
209+
]
210+
openupgrade.rename_xmlids(
211+
cr,
212+
full_renamed_xmlids,
213+
)
214+
215+
216+
def pre_absorb_old_module(cr):
217+
if openupgrade.is_module_installed(cr, "l10n_it_accompanying_invoice"):
218+
openupgrade.update_module_names(
219+
cr,
220+
[
221+
("l10n_it_fattura_accompagnatoria", "l10n_it_accompanying_invoice"),
222+
],
223+
merge_modules=True,
224+
)
225+
migrate_old_module(cr)

0 commit comments

Comments
 (0)