odoo-addon-openupgrade-scripts 18.0.1.0.0.74__py3-none-any.whl → 18.0.1.0.0.97__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/openupgrade_scripts/scripts/account/18.0.1.3/post-migration.py +181 -0
- odoo/addons/openupgrade_scripts/scripts/account/18.0.1.3/pre-migration.py +199 -0
- odoo/addons/openupgrade_scripts/scripts/account/18.0.1.3/upgrade_analysis_work.txt +377 -0
- odoo/addons/openupgrade_scripts/scripts/account/tests/data.py +19 -0
- odoo/addons/openupgrade_scripts/scripts/account/tests/test_migration.py +25 -0
- odoo/addons/openupgrade_scripts/scripts/account_payment/18.0.2.0/noupdate_changes.xml +1 -0
- odoo/addons/openupgrade_scripts/scripts/account_payment/18.0.2.0/upgrade_analysis_work.txt +11 -0
- odoo/addons/openupgrade_scripts/scripts/base_vat/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/hr/18.0.1.1/post-migration.py +10 -0
- odoo/addons/openupgrade_scripts/scripts/hr/18.0.1.1/pre-migration.py +52 -0
- odoo/addons/openupgrade_scripts/scripts/hr/18.0.1.1/upgrade_analysis_work.txt +76 -0
- odoo/addons/openupgrade_scripts/scripts/l10n_es/18.0.5.4/upgrade_analysis_work.txt +76 -0
- odoo/addons/openupgrade_scripts/scripts/product/18.0.1.2/post-migration.py +4 -4
- odoo/addons/openupgrade_scripts/scripts/purchase/18.0.1.2/post-migration.py +28 -0
- odoo/addons/openupgrade_scripts/scripts/purchase/18.0.1.2/pre-migration.py +24 -0
- odoo/addons/openupgrade_scripts/scripts/purchase/18.0.1.2/upgrade_analysis_work.txt +51 -0
- odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/end-migration.py +49 -0
- odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/post-migration.py +21 -0
- odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/pre-migration.py +34 -0
- odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/upgrade_analysis_work.txt +85 -0
- odoo/addons/openupgrade_scripts/scripts/sale_crm/18.0.1.0/upgrade_analysis_work.txt +5 -0
- odoo/addons/openupgrade_scripts/scripts/sale_stock/18.0.1.0/post-migration.py +12 -0
- odoo/addons/openupgrade_scripts/scripts/sale_stock/18.0.1.0/pre-migration.py +62 -0
- odoo/addons/openupgrade_scripts/scripts/sale_stock/18.0.1.0/upgrade_analysis_work.txt +18 -0
- odoo/addons/openupgrade_scripts/scripts/stock/18.0.1.1/post-migration.py +99 -0
- odoo/addons/openupgrade_scripts/scripts/stock/18.0.1.1/pre-migration.py +81 -0
- odoo/addons/openupgrade_scripts/scripts/stock/18.0.1.1/upgrade_analysis_work.txt +139 -0
- odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/end-migration.py +23 -0
- odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/post-migration.py +36 -0
- odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/pre-migration.py +22 -0
- odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/upgrade_analysis_work.txt +34 -0
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.74.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.97.dist-info}/METADATA +1 -1
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.74.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.97.dist-info}/RECORD +35 -6
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.74.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.97.dist-info}/WHEEL +0 -0
- {odoo_addon_openupgrade_scripts-18.0.1.0.0.74.dist-info → odoo_addon_openupgrade_scripts-18.0.1.0.0.97.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,181 @@
|
|
1
|
+
# Copyright 2025 ForgeFlow S.L. (https://www.forgeflow.com)
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
3
|
+
|
4
|
+
from openupgradelib import openupgrade, openupgrade_180
|
5
|
+
|
6
|
+
|
7
|
+
def replace_period_lock_date(env):
|
8
|
+
openupgrade.logged_query(
|
9
|
+
env.cr,
|
10
|
+
"""
|
11
|
+
UPDATE res_company
|
12
|
+
SET sale_lock_date = period_lock_date, purchase_lock_date = period_lock_date
|
13
|
+
WHERE period_lock_date IS NOT NULL""",
|
14
|
+
)
|
15
|
+
|
16
|
+
|
17
|
+
def link_payments_to_moves(env):
|
18
|
+
openupgrade.logged_query(
|
19
|
+
env.cr,
|
20
|
+
"""
|
21
|
+
INSERT INTO account_move__account_payment (invoice_id, payment_id)
|
22
|
+
SELECT am.id, ap.id
|
23
|
+
FROM account_payment ap
|
24
|
+
JOIN account_move am ON ap.move_id = am.id
|
25
|
+
""",
|
26
|
+
)
|
27
|
+
|
28
|
+
|
29
|
+
def convert_company_dependent(env):
|
30
|
+
openupgrade_180.convert_company_dependent(
|
31
|
+
env, "account.cash.rounding", "loss_account_id"
|
32
|
+
)
|
33
|
+
openupgrade_180.convert_company_dependent(
|
34
|
+
env, "account.cash.rounding", "profit_account_id"
|
35
|
+
)
|
36
|
+
openupgrade_180.convert_company_dependent(
|
37
|
+
env, "product.category", "property_account_expense_categ_id"
|
38
|
+
)
|
39
|
+
openupgrade_180.convert_company_dependent(
|
40
|
+
env, "product.category", "property_account_income_categ_id"
|
41
|
+
)
|
42
|
+
openupgrade_180.convert_company_dependent(
|
43
|
+
env, "product.template", "property_account_expense_id"
|
44
|
+
)
|
45
|
+
openupgrade_180.convert_company_dependent(
|
46
|
+
env, "product.template", "property_account_income_id"
|
47
|
+
)
|
48
|
+
openupgrade_180.convert_company_dependent(env, "res.partner", "credit_limit")
|
49
|
+
openupgrade_180.convert_company_dependent(
|
50
|
+
env, "res.partner", "property_account_payable_id"
|
51
|
+
)
|
52
|
+
openupgrade_180.convert_company_dependent(
|
53
|
+
env, "res.partner", "property_account_position_id"
|
54
|
+
)
|
55
|
+
openupgrade_180.convert_company_dependent(
|
56
|
+
env, "res.partner", "property_account_receivable_id"
|
57
|
+
)
|
58
|
+
openupgrade_180.convert_company_dependent(
|
59
|
+
env, "res.partner", "property_payment_term_id"
|
60
|
+
)
|
61
|
+
openupgrade_180.convert_company_dependent(
|
62
|
+
env, "res.partner", "property_supplier_payment_term_id"
|
63
|
+
)
|
64
|
+
openupgrade_180.convert_company_dependent(env, "res.partner", "trust")
|
65
|
+
|
66
|
+
|
67
|
+
def fill_res_partner_property_x_payment_method_line_id(env):
|
68
|
+
if not openupgrade.column_exists(
|
69
|
+
env.cr, "account_move", "preferred_payment_method_id"
|
70
|
+
):
|
71
|
+
return
|
72
|
+
# having account_check_printing module
|
73
|
+
env.cr.execute(
|
74
|
+
"""
|
75
|
+
SELECT id FROM ir_model_fields
|
76
|
+
WHERE model = 'res.partner'
|
77
|
+
AND name = 'property_payment_method_id'"""
|
78
|
+
)
|
79
|
+
old_field_id = env.cr.fetchone()[0]
|
80
|
+
openupgrade.logged_query(
|
81
|
+
env.cr,
|
82
|
+
f"""
|
83
|
+
UPDATE res_partner
|
84
|
+
SET property_outbound_payment_method_line_id=ir_property_by_company.value
|
85
|
+
FROM (
|
86
|
+
SELECT
|
87
|
+
SPLIT_PART(ip.res_id, ',', 2)::integer res_id,
|
88
|
+
JSON_OBJECT_AGG(ip.company_id, sub.id) AS "value"
|
89
|
+
FROM ir_property ip
|
90
|
+
JOIN LATERAL (
|
91
|
+
SELECT *
|
92
|
+
FROM account_payment_method_line apml
|
93
|
+
WHERE apml.payment_method_id = SPLIT_PART(
|
94
|
+
ip.value_reference, ',', 2)::integer
|
95
|
+
LIMIT 1
|
96
|
+
) as sub ON TRUE
|
97
|
+
WHERE ip.fields_id={old_field_id} AND ip.res_id IS NOT NULL
|
98
|
+
AND ip.company_id IS NOT NULL AND sub.id IS NOT NULL
|
99
|
+
GROUP BY res_id
|
100
|
+
) ir_property_by_company
|
101
|
+
WHERE res_partner.id=ir_property_by_company.res_id
|
102
|
+
""",
|
103
|
+
)
|
104
|
+
env.cr.execute(
|
105
|
+
f"""
|
106
|
+
SELECT ip.company_id, sub.id
|
107
|
+
FROM ir_property ip
|
108
|
+
JOIN LATERAL (
|
109
|
+
SELECT *
|
110
|
+
FROM account_payment_method_line apml
|
111
|
+
WHERE apml.payment_method_id = SPLIT_PART(
|
112
|
+
ip.value_reference, ',', 2)::integer
|
113
|
+
LIMIT 1
|
114
|
+
) as sub ON TRUE
|
115
|
+
WHERE ip.fields_id={old_field_id} AND res_id IS NULL AND sub.id IS NOT NULL
|
116
|
+
"""
|
117
|
+
)
|
118
|
+
for company_id, value in env.cr.fetchall():
|
119
|
+
env["ir.default"].set(
|
120
|
+
"res.partner",
|
121
|
+
"property_outbound_payment_method_line_id",
|
122
|
+
value,
|
123
|
+
company_id=company_id,
|
124
|
+
)
|
125
|
+
|
126
|
+
|
127
|
+
def account_account_code_fields(env):
|
128
|
+
"""
|
129
|
+
Fill account.account#code_store from company_id and code
|
130
|
+
"""
|
131
|
+
env.cr.execute(
|
132
|
+
"""
|
133
|
+
UPDATE account_account
|
134
|
+
SET code_store=json_build_object(company_id, code)
|
135
|
+
"""
|
136
|
+
)
|
137
|
+
|
138
|
+
|
139
|
+
@openupgrade.migrate()
|
140
|
+
def migrate(env, version):
|
141
|
+
replace_period_lock_date(env)
|
142
|
+
link_payments_to_moves(env)
|
143
|
+
account_account_code_fields(env)
|
144
|
+
openupgrade.m2o_to_x2m(
|
145
|
+
env.cr, env["account.account"], "account_account", "company_ids", "company_id"
|
146
|
+
)
|
147
|
+
convert_company_dependent(env)
|
148
|
+
fill_res_partner_property_x_payment_method_line_id(env)
|
149
|
+
openupgrade.load_data(env, "account", "18.0.1.3/noupdate_changes.xml")
|
150
|
+
openupgrade.delete_record_translations(
|
151
|
+
env.cr, "account", ["email_template_edi_invoice"]
|
152
|
+
)
|
153
|
+
openupgrade.delete_record_translations(
|
154
|
+
env.cr,
|
155
|
+
"account",
|
156
|
+
["account_payment_method_manual_in", "account_payment_method_manual_out"],
|
157
|
+
["name"],
|
158
|
+
)
|
159
|
+
openupgrade.delete_record_translations(
|
160
|
+
env.cr,
|
161
|
+
"account",
|
162
|
+
[
|
163
|
+
"onboarding_onboarding_step_chart_of_accounts",
|
164
|
+
"onboarding_onboarding_step_company_data",
|
165
|
+
"onboarding_onboarding_step_fiscal_year",
|
166
|
+
],
|
167
|
+
["title"],
|
168
|
+
)
|
169
|
+
openupgrade.delete_records_safely_by_xml_id(
|
170
|
+
env,
|
171
|
+
[
|
172
|
+
"account.default_followup_trust",
|
173
|
+
"account.account_move_send_rule_group_invoice",
|
174
|
+
"account.account_root_comp_rule",
|
175
|
+
"count.onboarding_onboarding_account_invoice",
|
176
|
+
"account.onboarding_onboarding_step_bank_account",
|
177
|
+
"account.onboarding_onboarding_step_create_invoice",
|
178
|
+
"account.onboarding_onboarding_step_default_taxes",
|
179
|
+
"account.onboarding_onboarding_step_setup_bill",
|
180
|
+
],
|
181
|
+
)
|
@@ -0,0 +1,199 @@
|
|
1
|
+
# Copyright 2025 ForgeFlow S.L. (https://www.forgeflow.com)
|
2
|
+
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
3
|
+
|
4
|
+
from openupgradelib import openupgrade
|
5
|
+
|
6
|
+
field_renames = [
|
7
|
+
("account.move", "account_move", "payment_id", "origin_payment_id"),
|
8
|
+
("account.move", "account_move", "reversal_move_id", "reversal_move_ids"),
|
9
|
+
("account.move", "account_move", "send_and_print_values", "sending_data"),
|
10
|
+
(
|
11
|
+
"account.payment",
|
12
|
+
"account_payment",
|
13
|
+
"journal_id",
|
14
|
+
"old_journal_id",
|
15
|
+
), # to avoid conflict in ir.model.fields
|
16
|
+
("account.payment", "account_payment", "destination_journal_id", "journal_id"),
|
17
|
+
]
|
18
|
+
|
19
|
+
field_renames_l10n_dk_bookkeeping = [
|
20
|
+
(
|
21
|
+
"account.move",
|
22
|
+
"account_move",
|
23
|
+
"l10n_dk_currency_rate_at_transaction",
|
24
|
+
"invoice_currency_rate",
|
25
|
+
),
|
26
|
+
]
|
27
|
+
|
28
|
+
_new_columns = [
|
29
|
+
("account.bank.statement.line", "company_id", "many2one"),
|
30
|
+
("account.bank.statement.line", "journal_id", "many2one"),
|
31
|
+
("account.journal", "autocheck_on_post", "boolean", True),
|
32
|
+
("account.move", "amount_untaxed_in_currency_signed", "float"),
|
33
|
+
("account.move", "checked", "boolean"),
|
34
|
+
("account.move", "preferred_payment_method_line_id", "many2one"),
|
35
|
+
("account.reconcile.model", "counterpart_type", "selection", "general"),
|
36
|
+
("account.tax", "price_include_override", "selection", "tax_excluded"),
|
37
|
+
("account.payment", "name", "char"),
|
38
|
+
("account.payment", "date", "date"),
|
39
|
+
("account.payment", "memo", "char"),
|
40
|
+
("account.payment", "state", "selection"),
|
41
|
+
("account.payment", "is_sent", "boolean"),
|
42
|
+
]
|
43
|
+
|
44
|
+
|
45
|
+
def rename_selection_option(env):
|
46
|
+
openupgrade.logged_query(
|
47
|
+
env.cr,
|
48
|
+
"""
|
49
|
+
UPDATE account_account
|
50
|
+
SET internal_group = 'off'
|
51
|
+
WHERE internal_group = 'off_balance'""",
|
52
|
+
)
|
53
|
+
openupgrade.logged_query(
|
54
|
+
env.cr,
|
55
|
+
"""
|
56
|
+
UPDATE account_report
|
57
|
+
SET default_opening_date_filter = 'last_' || substr(
|
58
|
+
default_opening_date_filter, 10)
|
59
|
+
WHERE left(default_opening_date_filter, 9) = 'previous_'""",
|
60
|
+
)
|
61
|
+
openupgrade.logged_query(
|
62
|
+
env.cr,
|
63
|
+
"""
|
64
|
+
UPDATE account_report_expression
|
65
|
+
SET date_scope = 'strict_range'
|
66
|
+
WHERE date_scope = 'normal'""",
|
67
|
+
)
|
68
|
+
openupgrade.logged_query(
|
69
|
+
env.cr,
|
70
|
+
"""
|
71
|
+
UPDATE account_tax
|
72
|
+
SET price_include_override = 'tax_included'
|
73
|
+
WHERE price_include""",
|
74
|
+
)
|
75
|
+
|
76
|
+
|
77
|
+
def update_account_move_amount_untaxed_in_currency_signed(env):
|
78
|
+
openupgrade.logged_query(
|
79
|
+
env.cr,
|
80
|
+
"""
|
81
|
+
UPDATE account_move
|
82
|
+
SET amount_untaxed_in_currency_signed = CASE
|
83
|
+
WHEN move_type IN ('out_invoice', 'in_refund', 'out_receipt')
|
84
|
+
THEN COALESCE(amount_untaxed, 0.0)
|
85
|
+
ELSE (-1) * COALESCE(amount_untaxed, 0.0) END""",
|
86
|
+
)
|
87
|
+
|
88
|
+
|
89
|
+
def update_account_move_checked(env):
|
90
|
+
openupgrade.logged_query(
|
91
|
+
env.cr,
|
92
|
+
"""
|
93
|
+
UPDATE account_move
|
94
|
+
SET checked = TRUE
|
95
|
+
WHERE to_check IS DISTINCT FROM TRUE""",
|
96
|
+
)
|
97
|
+
|
98
|
+
|
99
|
+
def fill_account_move_preferred_payment_method_line_id(env):
|
100
|
+
if openupgrade.column_exists(env.cr, "account_move", "preferred_payment_method_id"):
|
101
|
+
# having account_check_printing module
|
102
|
+
openupgrade.logged_query(
|
103
|
+
env.cr,
|
104
|
+
"""
|
105
|
+
UPDATE account_move am2
|
106
|
+
SET preferred_payment_method_line_id = COALESCE(apml.id, apml2.id)
|
107
|
+
FROM account_move am
|
108
|
+
JOIN account_payment_method apm ON
|
109
|
+
apm.id = am.preferred_payment_method_id
|
110
|
+
LEFT JOIN account_payment_method_line apml ON
|
111
|
+
apml.payment_method_id = apm.id AND apml.journal_id = am.journal_id
|
112
|
+
LEFT JOIN account_payment_method_line apml2 ON
|
113
|
+
apml2.payment_method_id = apm.id AND apml2.journal_id IS NULL
|
114
|
+
WHERE am.id = am2.id""",
|
115
|
+
)
|
116
|
+
|
117
|
+
|
118
|
+
def adapt_account_move_sending_data(env):
|
119
|
+
# sp_partner_id -> author_partner_id:
|
120
|
+
openupgrade.logged_query(
|
121
|
+
env.cr,
|
122
|
+
"""
|
123
|
+
UPDATE account_move
|
124
|
+
SET sending_data = jsonb_set(sending_data::jsonb - 'sp_partner_id',
|
125
|
+
'{author_partner_id}', sending_data::jsonb->'sp_partner_id')
|
126
|
+
WHERE sending_data IS NOT NULL AND sending_data::jsonb ? 'sp_partner_id'""",
|
127
|
+
)
|
128
|
+
# sp_user_id -> author_user_id:
|
129
|
+
openupgrade.logged_query(
|
130
|
+
env.cr,
|
131
|
+
"""
|
132
|
+
UPDATE account_move
|
133
|
+
SET sending_data = jsonb_set(sending_data::jsonb - 'sp_user_id',
|
134
|
+
'{author_user_id}', sending_data::jsonb->'sp_user_id')
|
135
|
+
WHERE sending_data IS NOT NULL AND sending_data::jsonb ? 'sp_user_id'""",
|
136
|
+
)
|
137
|
+
# send_mail: True -> 'sending_methods': {"email"}:
|
138
|
+
openupgrade.logged_query(
|
139
|
+
env.cr,
|
140
|
+
"""
|
141
|
+
UPDATE account_move
|
142
|
+
SET sending_data = jsonb_set(sending_data::jsonb - 'send_mail',
|
143
|
+
'{sending_methods}', '["email"]'::jsonb)
|
144
|
+
WHERE sending_data IS NOT NULL
|
145
|
+
AND sending_data::jsonb @> '{"send_mail": "true"}'::jsonb""",
|
146
|
+
)
|
147
|
+
|
148
|
+
|
149
|
+
def fill_account_payment(env):
|
150
|
+
openupgrade.logged_query(
|
151
|
+
env.cr,
|
152
|
+
"""
|
153
|
+
UPDATE account_payment ap
|
154
|
+
SET memo = am.ref,
|
155
|
+
state= CASE WHEN am.state = 'cancel' THEN 'canceled'
|
156
|
+
WHEN am.payment_state = 'paid' THEN 'paid'
|
157
|
+
WHEN am.state = 'posted' THEN 'in_process'
|
158
|
+
ELSE am.state END,
|
159
|
+
is_sent = am.is_move_sent,
|
160
|
+
name = CASE WHEN am.name != '/' THEN am.name
|
161
|
+
ELSE 'Draft Payment' END,
|
162
|
+
date = am.date,
|
163
|
+
journal_id = CASE WHEN ap.journal_id IS NULL
|
164
|
+
AND aj.type in ('bank', 'cash', 'credit')
|
165
|
+
THEN am.journal_id ELSE ap.journal_id END
|
166
|
+
FROM account_move am
|
167
|
+
LEFT JOIN account_journal aj ON am.journal_id = aj.id
|
168
|
+
WHERE ap.move_id = am.id""",
|
169
|
+
)
|
170
|
+
|
171
|
+
|
172
|
+
@openupgrade.migrate()
|
173
|
+
def migrate(env, version):
|
174
|
+
if openupgrade.column_exists(
|
175
|
+
env.cr, "account_move", "l10n_dk_currency_rate_at_transaction"
|
176
|
+
):
|
177
|
+
openupgrade.rename_fields(env, field_renames_l10n_dk_bookkeeping)
|
178
|
+
openupgrade.rename_fields(env, field_renames)
|
179
|
+
openupgrade.add_columns(env, _new_columns)
|
180
|
+
update_account_move_amount_untaxed_in_currency_signed(env)
|
181
|
+
update_account_move_checked(env)
|
182
|
+
fill_account_move_preferred_payment_method_line_id(env)
|
183
|
+
adapt_account_move_sending_data(env)
|
184
|
+
rename_selection_option(env)
|
185
|
+
fill_account_payment(env)
|
186
|
+
openupgrade.convert_field_to_html(
|
187
|
+
env.cr,
|
188
|
+
"account_tax",
|
189
|
+
"description",
|
190
|
+
"description",
|
191
|
+
verbose=False,
|
192
|
+
translate=True,
|
193
|
+
)
|
194
|
+
openupgrade.delete_records_safely_by_xml_id(
|
195
|
+
env,
|
196
|
+
[
|
197
|
+
"account.action_account_unreconcile",
|
198
|
+
],
|
199
|
+
)
|