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.
Files changed (35) hide show
  1. odoo/addons/openupgrade_scripts/scripts/account/18.0.1.3/post-migration.py +181 -0
  2. odoo/addons/openupgrade_scripts/scripts/account/18.0.1.3/pre-migration.py +199 -0
  3. odoo/addons/openupgrade_scripts/scripts/account/18.0.1.3/upgrade_analysis_work.txt +377 -0
  4. odoo/addons/openupgrade_scripts/scripts/account/tests/data.py +19 -0
  5. odoo/addons/openupgrade_scripts/scripts/account/tests/test_migration.py +25 -0
  6. odoo/addons/openupgrade_scripts/scripts/account_payment/18.0.2.0/noupdate_changes.xml +1 -0
  7. odoo/addons/openupgrade_scripts/scripts/account_payment/18.0.2.0/upgrade_analysis_work.txt +11 -0
  8. odoo/addons/openupgrade_scripts/scripts/base_vat/18.0.1.0/upgrade_analysis_work.txt +5 -0
  9. odoo/addons/openupgrade_scripts/scripts/hr/18.0.1.1/post-migration.py +10 -0
  10. odoo/addons/openupgrade_scripts/scripts/hr/18.0.1.1/pre-migration.py +52 -0
  11. odoo/addons/openupgrade_scripts/scripts/hr/18.0.1.1/upgrade_analysis_work.txt +76 -0
  12. odoo/addons/openupgrade_scripts/scripts/l10n_es/18.0.5.4/upgrade_analysis_work.txt +76 -0
  13. odoo/addons/openupgrade_scripts/scripts/product/18.0.1.2/post-migration.py +4 -4
  14. odoo/addons/openupgrade_scripts/scripts/purchase/18.0.1.2/post-migration.py +28 -0
  15. odoo/addons/openupgrade_scripts/scripts/purchase/18.0.1.2/pre-migration.py +24 -0
  16. odoo/addons/openupgrade_scripts/scripts/purchase/18.0.1.2/upgrade_analysis_work.txt +51 -0
  17. odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/end-migration.py +49 -0
  18. odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/post-migration.py +21 -0
  19. odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/pre-migration.py +34 -0
  20. odoo/addons/openupgrade_scripts/scripts/sale/18.0.1.2/upgrade_analysis_work.txt +85 -0
  21. odoo/addons/openupgrade_scripts/scripts/sale_crm/18.0.1.0/upgrade_analysis_work.txt +5 -0
  22. odoo/addons/openupgrade_scripts/scripts/sale_stock/18.0.1.0/post-migration.py +12 -0
  23. odoo/addons/openupgrade_scripts/scripts/sale_stock/18.0.1.0/pre-migration.py +62 -0
  24. odoo/addons/openupgrade_scripts/scripts/sale_stock/18.0.1.0/upgrade_analysis_work.txt +18 -0
  25. odoo/addons/openupgrade_scripts/scripts/stock/18.0.1.1/post-migration.py +99 -0
  26. odoo/addons/openupgrade_scripts/scripts/stock/18.0.1.1/pre-migration.py +81 -0
  27. odoo/addons/openupgrade_scripts/scripts/stock/18.0.1.1/upgrade_analysis_work.txt +139 -0
  28. odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/end-migration.py +23 -0
  29. odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/post-migration.py +36 -0
  30. odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/pre-migration.py +22 -0
  31. odoo/addons/openupgrade_scripts/scripts/stock_account/18.0.1.1/upgrade_analysis_work.txt +34 -0
  32. {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
  33. {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
  34. {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
  35. {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
+ )