Skip to content

Commit 018b532

Browse files
committed
Merge PR #3867 into 17.0
Signed-off-by etobella
2 parents 9fa84b8 + 13a1455 commit 018b532

File tree

2 files changed

+342
-1
lines changed

2 files changed

+342
-1
lines changed

l10n_es_igic/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
{
1111
"name": "IGIC (Impuesto General Indirecto Canario)",
12-
"version": "17.0.2.0.0",
12+
"version": "17.0.2.1.0",
1313
"countries": ["es"],
1414
"author": "David Diz Martínez,"
1515
"Atlantux Consultores - Enrique Zanardi,"
Lines changed: 341 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,341 @@
1+
from openupgradelib import openupgrade, openupgrade_merge_records
2+
3+
_xml_ids_renames = [
4+
# account_tax_templates
5+
("account_tax_template_s_igic0b", "account_tax_template_igic_r_0"),
6+
("account_tax_template_s_igic3b", "account_tax_template_igic_r_3"),
7+
("account_tax_template_s_igic7b", "account_tax_template_igic_r_7"),
8+
("account_tax_template_s_igic95b", "account_tax_template_igic_r_9_5"),
9+
("account_tax_template_s_igic15b", "account_tax_template_igic_r_15"),
10+
("account_tax_template_s_igic20b", "account_tax_template_igic_r_20"),
11+
("account_tax_template_s_igic_ISP0b", "account_tax_template_igic_s_ISP0"),
12+
("account_tax_template_s_igic_ex0b", "account_tax_template_igic_ex_0"),
13+
("account_tax_template_s_igic_ex_b", "account_tax_template_igic_re_ex"),
14+
("account_tax_template_s_igic_cmino_b", "account_tax_template_igic_cmino"),
15+
("account_tax_template_p_igic0_bc", "account_tax_template_igic_sop_0"),
16+
("account_tax_template_p_igic3_bc", "account_tax_template_igic_sop_3"),
17+
("account_tax_template_p_igic7_bc", "account_tax_template_igic_sop_7"),
18+
("account_tax_template_p_igic95_bc", "account_tax_template_igic_sop_9_5"),
19+
("account_tax_template_p_igic15_bc", "account_tax_template_igic_sop_15"),
20+
("account_tax_template_p_igic20_bc", "account_tax_template_igic_sop_20"),
21+
("account_tax_template_p_igic_ISP0bc", "account_tax_template_igic_ISP0"),
22+
("account_tax_template_p_igic_ISP3bc", "account_tax_template_igic_ISP3"),
23+
("account_tax_template_p_igic_ISP7bc", "account_tax_template_igic_ISP7"),
24+
("account_tax_template_p_igic_ISP95bc", "account_tax_template_igic_ISP95"),
25+
("account_tax_template_p_igic_ISP15bc", "account_tax_template_igic_ISP15"),
26+
("account_tax_template_p_igic_ISP20bc", "account_tax_template_igic_ISP20"),
27+
("account_tax_template_p_igic_ex_bc", "account_tax_template_igic_p_ex"),
28+
("account_tax_template_p_igic_cmino_bc", "account_tax_template_igic_sop_cmino"),
29+
("account_tax_template_p_igic3_cmino_bc", "account_tax_template_igic_sop_3_cmino"),
30+
("account_tax_template_p_igic7_cmino_bc", "account_tax_template_igic_sop_7_cmino"),
31+
(
32+
"account_tax_template_p_igic95_cmino_bc",
33+
"account_tax_template_igic_sop_9_5_cmino",
34+
),
35+
(
36+
"account_tax_template_p_igic15_cmino_bc",
37+
"account_tax_template_igic_sop_15_cmino",
38+
),
39+
(
40+
"account_tax_template_p_igic20_cmino_bc",
41+
"account_tax_template_igic_sop_20_cmino",
42+
),
43+
("account_tax_template_p_igic0_inv_bc", "account_tax_template_igic_sop_0_inv"),
44+
("account_tax_template_p_igic3_inv_bc", "account_tax_template_igic_sop_3_inv"),
45+
("account_tax_template_p_igic7_inv_bc", "account_tax_template_igic_sop_7_inv"),
46+
("account_tax_template_p_igic95_inv_bc", "account_tax_template_igic_sop_9_5_inv"),
47+
("account_tax_template_p_igic15_inv_bc", "account_tax_template_igic_sop_15_inv"),
48+
("account_tax_template_p_igic20_inv_bc", "account_tax_template_igic_sop_20_inv"),
49+
("account_tax_template_p_igic0_imp_bc", "account_tax_template_igic_sop_i_0"),
50+
("account_tax_template_p_igic3_imp_bc", "account_tax_template_igic_sop_i_3"),
51+
("account_tax_template_p_igic7_imp_bc", "account_tax_template_igic_sop_i_7"),
52+
("account_tax_template_p_igic95_imp_bc", "account_tax_template_igic_sop_i_9_5"),
53+
("account_tax_template_p_igic15_imp_bc", "account_tax_template_igic_sop_i_15"),
54+
("account_tax_template_p_igic20_imp_bc", "account_tax_template_igic_sop_i_20"),
55+
(
56+
"account_tax_template_p_igic0_imp_inv_bc",
57+
"account_tax_template_igic_sop_i_0_inv",
58+
),
59+
(
60+
"account_tax_template_p_igic3_imp_inv_bc",
61+
"account_tax_template_igic_sop_i_3_inv",
62+
),
63+
(
64+
"account_tax_template_p_igic7_imp_inv_bc",
65+
"account_tax_template_igic_sop_i_7_inv",
66+
),
67+
(
68+
"account_tax_template_p_igic95_imp_inv_bc",
69+
"account_tax_template_igic_sop_i_9_5_inv",
70+
),
71+
(
72+
"account_tax_template_p_igic15_imp_inv_bc",
73+
"account_tax_template_igic_sop_i_15_inv",
74+
),
75+
(
76+
"account_tax_template_p_igic20_imp_inv_bc",
77+
"account_tax_template_igic_sop_i_20_inv",
78+
),
79+
("account_tax_template_p_igic0_re_bc", "account_tax_template_igic_p_re0"),
80+
("account_tax_template_p_igic03_re_bc", "account_tax_template_igic_p_re03"),
81+
("account_tax_template_p_igic07_re_bc", "account_tax_template_igic_p_re07"),
82+
("account_tax_template_p_igic095_re_bc", "account_tax_template_igic_p_re095"),
83+
("account_tax_template_p_igic15_re_bc", "account_tax_template_igic_p_re15"),
84+
("account_tax_template_p_igic20_re_bc", "account_tax_template_igic_p_re20"),
85+
# account_assoc -> account_assoc_canary
86+
("account_assoc_100", "account_assoc_canary_100"),
87+
("account_assoc_1030", "account_assoc_canary_1030"),
88+
("account_assoc_1034", "account_assoc_canary_1034"),
89+
("account_assoc_1040", "account_assoc_canary_1040"),
90+
("account_assoc_1044", "account_assoc_canary_1044"),
91+
("account_assoc_120", "account_assoc_canary_120"),
92+
("account_assoc_121", "account_assoc_canary_121"),
93+
("account_assoc_129", "account_assoc_canary_129"),
94+
("account_assoc_1300", "account_assoc_canary_1300"),
95+
("account_assoc_1301", "account_assoc_canary_1301"),
96+
("account_assoc_1320", "account_assoc_canary_1320"),
97+
("account_assoc_1321", "account_assoc_canary_1321"),
98+
("account_assoc_207", "account_assoc_canary_207"),
99+
("account_assoc_2400", "account_assoc_canary_2400"),
100+
("account_assoc_canary_240", "account_assoc_canary_2400"),
101+
("account_assoc_2401", "account_assoc_canary_2401"),
102+
("account_assoc_2402", "account_assoc_canary_2402"),
103+
("account_assoc_2403", "account_assoc_canary_2403"),
104+
("account_assoc_2404", "account_assoc_canary_2404"),
105+
("account_assoc_2490", "account_assoc_canary_2490"),
106+
("account_assoc_2491", "account_assoc_canary_2491"),
107+
("account_assoc_2492", "account_assoc_canary_2492"),
108+
("account_assoc_2493", "account_assoc_canary_2493"),
109+
("account_assoc_2494", "account_assoc_canary_2494"),
110+
("account_assoc_2807", "account_assoc_canary_2807"),
111+
("account_assoc_2830", "account_assoc_canary_2830"),
112+
("account_assoc_2831", "account_assoc_canary_2831"),
113+
("account_assoc_2907", "account_assoc_canary_2907"),
114+
("account_assoc_2935", "account_assoc_canary_2935"),
115+
("account_assoc_296", "account_assoc_canary_296"),
116+
("account_assoc_2990", "account_assoc_canary_2990"),
117+
("account_assoc_canary_299", "account_assoc_canary_2990"),
118+
("account_assoc_2991", "account_assoc_canary_2991"),
119+
("account_assoc_2992", "account_assoc_canary_2992"),
120+
("account_assoc_2993", "account_assoc_canary_2993"),
121+
("account_assoc_2994", "account_assoc_canary_2994"),
122+
("account_assoc_412", "account_assoc_canary_412"),
123+
("account_assoc_447", "account_assoc_canary_447"),
124+
("account_assoc_4480", "account_assoc_canary_4480"),
125+
("account_assoc_canary_448", "account_assoc_canary_4480"),
126+
("account_assoc_4482", "account_assoc_canary_4482"),
127+
("account_assoc_4489", "account_assoc_canary_4489"),
128+
("account_assoc_464", "account_assoc_canary_464"),
129+
("account_assoc_4707", "account_assoc_canary_4707"),
130+
("account_assoc_4757", "account_assoc_canary_4757"),
131+
("account_assoc_490", "account_assoc_canary_490"),
132+
("account_assoc_551", "account_assoc_canary_551"),
133+
("account_assoc_5935", "account_assoc_canary_5935"),
134+
("account_assoc_596", "account_assoc_canary_596"),
135+
("account_assoc_canary_6343", "account_common_canary_6343"),
136+
("account_assoc_canary_6344", "account_common_canary_6344"),
137+
("account_assoc_canary_6393", "account_common_canary_6393"),
138+
("account_assoc_canary_6394", "account_common_canary_6394"),
139+
("account_assoc_6501", "account_assoc_canary_6501"),
140+
("account_assoc_6502", "account_assoc_canary_6502"),
141+
("account_assoc_6503", "account_assoc_canary_6503"),
142+
("account_assoc_6504", "account_assoc_canary_6504"),
143+
("account_assoc_6510", "account_assoc_canary_6510"),
144+
("account_assoc_6511", "account_assoc_canary_6511"),
145+
("account_assoc_6512", "account_assoc_canary_6512"),
146+
("account_assoc_6513", "account_assoc_canary_6513"),
147+
("account_assoc_6514", "account_assoc_canary_6514"),
148+
("account_assoc_653", "account_assoc_canary_653"),
149+
("account_assoc_654", "account_assoc_canary_654"),
150+
("account_assoc_655", "account_assoc_canary_655"),
151+
("account_assoc_6560", "account_assoc_canary_6560"),
152+
("account_assoc_canary_656", "account_assoc_canary_6560"),
153+
("account_assoc_6561", "account_assoc_canary_6561"),
154+
("account_assoc_658", "account_assoc_canary_658"),
155+
("account_assoc_663", "account_assoc_canary_663"),
156+
("account_assoc_6710", "account_assoc_canary_6710"),
157+
("account_assoc_canary_671", "account_assoc_canary_6710"),
158+
("account_assoc_6711", "account_assoc_canary_6711"),
159+
("account_assoc_6910", "account_assoc_canary_6910"),
160+
("account_assoc_canary_691", "account_assoc_canary_6910"),
161+
("account_assoc_6911", "account_assoc_canary_6911"),
162+
("account_assoc_694", "account_assoc_canary_694"),
163+
("account_assoc_720", "account_assoc_canary_720"),
164+
("account_assoc_721", "account_assoc_canary_721"),
165+
("account_assoc_722", "account_assoc_canary_722"),
166+
("account_assoc_7230", "account_assoc_canary_7230"),
167+
("account_assoc_canary_723", "account_assoc_canary_7230"),
168+
("account_assoc_7231", "account_assoc_canary_7231"),
169+
("account_assoc_7233", "account_assoc_canary_7233"),
170+
("account_assoc_728", "account_assoc_canary_728"),
171+
("account_assoc_763", "account_assoc_canary_763"),
172+
("account_assoc_791", "account_assoc_canary_791"),
173+
("account_assoc_794", "account_assoc_canary_794"),
174+
("account_assoc_7962", "account_assoc_canary_7962"),
175+
("account_assoc_7963", "account_assoc_canary_7963"),
176+
# account_full
177+
("account_full_canary_134", "account_full_canary_1340"),
178+
("account_full_canary_255", "account_full_canary_2550"),
179+
("account_full_canary_47071", "account_common_canary_47071"),
180+
("account_full_canary_47072", "account_common_canary_47072"),
181+
("account_full_canary_553", "account_full_canary_5530"),
182+
("account_full_canary_599", "account_full_canary_5990"),
183+
("account_full_canary_6343", "account_common_canary_6343"),
184+
("account_full_canary_6344", "account_common_canary_6344"),
185+
("account_full_canary_6393", "account_common_canary_6393"),
186+
("account_full_canary_6394", "account_common_canary_6394"),
187+
("account_full_canary_644", "account_full_canary_6440"),
188+
("account_full_canary_645", "account_full_canary_6450"),
189+
("account_full_canary_651", "account_full_canary_6510"),
190+
("account_full_canary_663", "account_full_canary_6630"),
191+
("account_full_canary_763", "account_full_canary_7630"),
192+
("account_full_canary_795", "account_full_canary_7950"),
193+
("account_full_canary_830", "account_full_canary_8300"),
194+
# account_pymes
195+
("account_pymes_canary_47071", "account_common_canary_47071"),
196+
("account_pymes_canary_47072", "account_common_canary_47072"),
197+
("account_pymes_canary_6343", "account_common_canary_6343"),
198+
("account_pymes_canary_6344", "account_common_canary_6344"),
199+
("account_pymes_canary_6393", "account_common_canary_6393"),
200+
("account_pymes_canary_6394", "account_common_canary_6394"),
201+
]
202+
203+
_xml_ids_renames_es_full_canary = [
204+
("account_common_canary_4707", "account_full_canary_4707"),
205+
("account_common_canary_4757", "account_full_canary_4757"),
206+
]
207+
208+
_xml_ids_renames_es_pymes_canary = [
209+
("account_common_canary_4707", "account_pymes_canary_4707"),
210+
("account_common_canary_4757", "account_pymes_canary_4757"),
211+
]
212+
213+
_taxes_to_merge = [
214+
(
215+
(
216+
"account_tax_template_s_igic_ISP3b",
217+
"account_tax_template_s_igic_ISP7b",
218+
"account_tax_template_s_igic_ISP95b",
219+
"account_tax_template_s_igic_ISP15b",
220+
"account_tax_template_s_igic_ISP20b",
221+
),
222+
"account_tax_template_p_igic_ISP0bc",
223+
),
224+
(
225+
(
226+
"account_tax_template_s_igic3_cmino_b",
227+
"account_tax_template_s_igic7_cmino_b"
228+
"account_tax_template_s_igic95_cmino_b",
229+
"account_tax_template_s_igic15_cmino_b",
230+
"account_tax_template_s_igic20_cmino_b",
231+
),
232+
"account_tax_template_s_igic_cmino_b",
233+
),
234+
(["account_tax_template_s_igic0s"], "account_tax_template_s_igic0b"),
235+
(["account_tax_template_s_igic3s"], "account_tax_template_s_igic3b"),
236+
(["account_tax_template_s_igic7s"], "account_tax_template_s_igic7b"),
237+
(["account_tax_template_s_igic95s"], "account_tax_template_s_igic95b"),
238+
(["account_tax_template_s_igic15s"], "account_tax_template_s_igic15b"),
239+
(["account_tax_template_s_igic20s"], "account_tax_template_s_igic20b"),
240+
(["account_tax_template_p_igic0_sc"], "account_tax_template_p_igic0_bc"),
241+
(["account_tax_template_p_igic3_sc"], "account_tax_template_p_igic3_bc"),
242+
(["account_tax_template_p_igic7_sc"], "account_tax_template_p_igic7_bc"),
243+
(["account_tax_template_p_igic95_sc"], "account_tax_template_p_igic95_bc"),
244+
(["account_tax_template_p_igic15_sc"], "account_tax_template_p_igic15_bc"),
245+
(["account_tax_template_p_igic20_sc"], "account_tax_template_p_igic20_bc"),
246+
]
247+
248+
TAX_MERGE_OPS = {
249+
"amount": "target",
250+
"repartition_line_ids": "target",
251+
"name": "target",
252+
"description": "target",
253+
"invoice_label": "target",
254+
}
255+
256+
TAX_REPARTITION_LINE_MERGE_OPS = {
257+
"tag_ids": "target",
258+
"factor": "target",
259+
"factor_percent": "target",
260+
"invoice_label": "target",
261+
}
262+
263+
264+
def rename_taxes_xmlids(env, company):
265+
_xml_ids_renames_company = [
266+
(
267+
f"account.{company.id}_{xml_ids[0]}",
268+
f"account.{company.id}_{xml_ids[1]}",
269+
)
270+
for xml_ids in _xml_ids_renames
271+
]
272+
if company.chart_template == "es_full_canary":
273+
_xml_ids_renames_company.extend(
274+
[
275+
(
276+
f"account.{company.id}_{xml_ids[0]}",
277+
f"account.{company.id}_{xml_ids[1]}",
278+
)
279+
for xml_ids in _xml_ids_renames_es_full_canary
280+
]
281+
)
282+
elif company.chart_template == "es_pymes_canary":
283+
_xml_ids_renames_company.extend(
284+
[
285+
(
286+
f"account.{company.id}_{xml_ids[0]}",
287+
f"account.{company.id}_{xml_ids[1]}",
288+
)
289+
for xml_ids in _xml_ids_renames_es_pymes_canary
290+
]
291+
)
292+
293+
openupgrade.rename_xmlids(env.cr, _xml_ids_renames_company)
294+
295+
296+
def merge_tax_repartition_lines(env, tax_to_merge_into, taxes_to_merge):
297+
for rep_line_to_merge_into in tax_to_merge_into.mapped("repartition_line_ids"):
298+
rep_lines_to_merge = taxes_to_merge.mapped("repartition_line_ids").filtered(
299+
lambda rl,
300+
rep_line_to_merge_into=rep_line_to_merge_into: rl.repartition_type
301+
== rep_line_to_merge_into.repartition_type
302+
and rl.document_type == rep_line_to_merge_into.document_type
303+
and rl.account_id.id == rep_line_to_merge_into.account_id.id
304+
)
305+
if not rep_line_to_merge_into or len(rep_lines_to_merge) == 0:
306+
continue
307+
openupgrade_merge_records.merge_records(
308+
env,
309+
"account.tax.repartition.line",
310+
rep_lines_to_merge.ids,
311+
rep_line_to_merge_into.id,
312+
TAX_REPARTITION_LINE_MERGE_OPS,
313+
method="sql",
314+
)
315+
316+
317+
def merge_taxes(env, company):
318+
for taxes in _taxes_to_merge:
319+
taxes_to_merge = env["account.tax"]
320+
for tax in taxes[0]:
321+
tax_id = env.ref(f"account.{company.id}_{tax}", False)
322+
if tax_id:
323+
taxes_to_merge |= tax_id
324+
tax_to_merge_into = env.ref(f"account.{company.id}_{taxes[1]}", False)
325+
if len(taxes_to_merge) > 0 and tax_to_merge_into:
326+
merge_tax_repartition_lines(env, tax_to_merge_into, taxes_to_merge)
327+
openupgrade_merge_records.merge_records(
328+
env,
329+
"account.tax",
330+
taxes_to_merge.ids,
331+
tax_to_merge_into.id,
332+
TAX_MERGE_OPS,
333+
method="sql",
334+
)
335+
336+
337+
@openupgrade.migrate()
338+
def migrate(env, version):
339+
for company in env["res.company"].search([]):
340+
merge_taxes(env, company)
341+
rename_taxes_xmlids(env, company)

0 commit comments

Comments
 (0)