Closed mholthausen closed 8 months ago
Are there any new findings on this? We would like to upgrade our odoo15, but we are failing at the same point with our production instance as with the fresh installation described above.
What is the state of the module account_payment ?
What do you mean by "state of the module"? Where can I check this? The only thing I can find is an upgrade_analysis.txt
from the openupgrade_scripts
folder (account_payment/16.0.2.0):
---Models in module 'account_payment'---
model payment.refund.wizard (moved from payment) [transient]
---Fields in module 'account_payment'---
account_payment / account.bank.statement.line / amount_paid (float) : previously in module payment
account_payment / account.bank.statement.line / authorized_transaction_ids (many2many): previously in module payment
account_payment / account.bank.statement.line / transaction_ids (many2many) : previously in module payment
account_payment / account.move / amount_paid (float) : previously in module payment
account_payment / account.move / authorized_transaction_ids (many2many): previously in module payment
account_payment / account.move / transaction_ids (many2many) : previously in module payment
account_payment / account.payment / amount_available_for_refund (float): previously in module payment
account_payment / account.payment / amount_paid (float) : previously in module payment
account_payment / account.payment / authorized_transaction_ids (many2many): previously in module payment
account_payment / account.payment / payment_token_id (many2one) : previously in module payment
account_payment / account.payment / payment_transaction_id (many2one): previously in module payment
account_payment / account.payment / refunds_count (integer) : previously in module payment
account_payment / account.payment / source_payment_id (many2one) : previously in module payment
account_payment / account.payment / suitable_payment_token_ids (many2many): previously in module payment
account_payment / account.payment / transaction_ids (many2many) : previously in module payment
account_payment / account.payment / use_electronic_payment_method (boolean): previously in module payment
account_payment / account.payment.method.line / payment_provider_id (many2one): NEW relation: payment.provider, isfunction: function, stored
account_payment / payment.transaction / invoice_ids (many2many) : previously in module payment
account_payment / payment.transaction / invoices_count (integer) : previously in module payment
account_payment / payment.transaction / payment_id (many2one) : previously in module payment
---XML records in module 'account_payment'---
NEW ir.actions.act_window: account_payment.action_invoice_order_generate_link [renamed from payment module]
NEW ir.model.access: account_payment.payment_link_wizard [renamed from payment module]
NEW ir.model.access: account_payment.payment_refund_wizard [renamed from payment module]
NEW ir.rule: account_payment.payment_token_billing_rule [renamed from payment module] (noupdate)
NEW ir.rule: account_payment.payment_transaction_billing_rule [renamed from payment module] (noupdate)
NEW ir.ui.menu: account_payment.payment_icon_menu [renamed from payment module]
NEW ir.ui.menu: account_payment.payment_provider_menu
NEW ir.ui.menu: account_payment.payment_token_menu [renamed from payment module]
NEW ir.ui.menu: account_payment.payment_transaction_menu [renamed from payment module]
NEW ir.ui.view: account_payment.account_invoice_view_form_inherit_payment
NEW ir.ui.view: account_payment.payment_checkout_inherit
NEW ir.ui.view: account_payment.payment_manage_inherit
NEW ir.ui.view: account_payment.payment_provider_form
NEW ir.ui.view: account_payment.payment_refund_wizard_view_form
NEW ir.ui.view: account_payment.payment_transaction_form
NEW ir.ui.view: account_payment.view_account_journal_form
NEW ir.ui.view: account_payment.view_account_payment_form_inherit_payment
NEW ir.ui.view: account_payment.view_account_payment_register_form_inherit_payment
In addition, I cannot find the fields mentioned in the error messages (authorized_transaction_ids
and amount_available_for_refund
) in the databases for either odoo15 or odoo16. Therefore, I do not understand how and where I can add these fields myself.
amount_available_for_refund in in account in 15.0 and in account_payment in 16.0 module. but the new module is auto_installable, if account is installed. That's why, I ask for the state of the record "account_payment" in the ir_module_module table.
First of all, "account" was installed in 15.0 and "account_payment" was uninstalled. After an update to 16.0, the state for "account_payment" remained uninstalled, although auto_install was set to true. I then installed this in the odoo15 installation and updated to odoo16 again. Then the state here is "installed" and the error messages no longer appear. I wasn't aware that another module had to be installed tor run the upgrade successfully. Although an upgrade of the app via the App Store still fails (Field "amount_available_for_refund" does not exist in model "account.payment"). But I don't think this is absolutely necessary as the app itself seems to work. Thank you.
Although I can now at least call up the "Invoicing" app again, I still receive errors in various other places for missing field information or entire fields after upgrading to odoo16:
Invoicing -> Configuration -> Journals:
UncaughtPromiseError
Uncaught Promise > Missing field string information for the field 'payment_acquirer_id' from the 'account.payment.method.line' model
Error: Missing field string information for the field 'payment_acquirer_id' from the 'account.payment.method.line' model
at http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6760:258
at traverse (http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6755:200)
at http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6755:242
at _.each._.forEach (http://localhost:8070/web/assets/133-6323ddf/web.assets_common.min.js:63:404)
at traverse (http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6755:211)
at processArch (http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6759:180)
at http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6762:266
at traverse (http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6755:200)
at http://localhost:8070/web/assets/134-6af315d/web.assets_backend.min.js:6755:242
at _.each._.forEach (http://localhost:8070/web/assets/133-6323ddf/web.assets_common.min.js:63:404)
Update app account:
<form string="Register Payment" __validate__="1">
<header>
<button name="action_post" string="Confirm" type="object" class="oe_highlight" attrs="{'invisible': [('state', '!=', 'draft')]}" data-hotkey="v"/>
<button name="action_draft" string="Reset To Draft" type="object" class="btn btn-secondary" attrs="{'invisible': [('state', 'not in', ('posted', 'cancel'))]}" groups="account.group_account_invoice" data-hotkey="w"/>
<field name="amount_available_for_refund" invisible="1"/>
Field "amount_available_for_refund" does not exist in model "account.payment"
View error context:
{'file': '/usr/lib/python3/dist-packages/odoo/addons/account/views/account_payment_view.xml',
'line': 3,
'name': 'account.payment.form',
'view': ir.ui.view(510,),
'view.model': 'account.payment',
'view.parent': ir.ui.view(),
'xmlid': 'view_account_payment_form'}
Update module "account_payment":
<form string="Account Journal" __validate__="1">
<field name="company_id" invisible="1"/>
<field name="bank_statements_source" invisible="1"/>
<sheet>
<div name="button_box" class="oe_button_box">
Field "payment_acquirer_id" does not exist in model "account.payment.method.line"
View error context:
{'file': '/usr/lib/python3/dist-packages/odoo/addons/account_payment/views/account_journal_views.xml',
'line': 3,
'name': 'account.journal.form.inherit.payment',
'view': ir.ui.view(822,),
'view.model': 'account.journal',
'view.parent': ir.ui.view(559,),
'xmlid': 'view_account_journal_form'}
I've installed module "Payment - Account / Invoice Online Payment Patch", because patch sounds like some troubleshooting but still no changes.
Is there a list or detailed instructions for "account" somewhere on what may need to be set, installed or uninstalled for the invoicing app upgrade process to run successfully? Unfortunately, I don't know what to do. On the migration page (https://github.com/OCA/OpenUpgrade/issues/3681) there is a tick next to "account" and also next to "account_payment", which indicates to me that the upgrade process is complete. I'm beginning to assume that in our case a new installation of odoo17 and a CSV export and import of the customer data pool is the better way, as I'm just chasing from one error to the next.
It seems you are not executing correctly the upgrade. There should be traces in the migration log about the migration queries.
Thank you very much! Where exactly can I find this upgrade log file? I only see the upgrade_analysis.txt files for many individual modules (openupgrade_scripts/scripts/). For account_payment, for example, the following is shown there:
---Models in module 'account_payment'---
model payment.refund.wizard (moved from payment) [transient]
---Fields in module 'account_payment'---
account_payment / account.bank.statement.line / amount_paid (float) : previously in module payment
account_payment / account.bank.statement.line / authorized_transaction_ids (many2many): previously in module payment
account_payment / account.bank.statement.line / transaction_ids (many2many) : previously in module payment
account_payment / account.move / amount_paid (float) : previously in module payment
account_payment / account.move / authorized_transaction_ids (many2many): previously in module payment
account_payment / account.move / transaction_ids (many2many) : previously in module payment
account_payment / account.payment / amount_available_for_refund (float): previously in module payment
account_payment / account.payment / amount_paid (float) : previously in module payment
account_payment / account.payment / authorized_transaction_ids (many2many): previously in module payment
account_payment / account.payment / payment_token_id (many2one) : previously in module payment
account_payment / account.payment / payment_transaction_id (many2one): previously in module payment
account_payment / account.payment / refunds_count (integer) : previously in module payment
account_payment / account.payment / source_payment_id (many2one) : previously in module payment
account_payment / account.payment / suitable_payment_token_ids (many2many): previously in module payment
account_payment / account.payment / transaction_ids (many2many) : previously in module payment
account_payment / account.payment / use_electronic_payment_method (boolean): previously in module payment
account_payment / account.payment.method.line / payment_provider_id (many2one): NEW relation: payment.provider, isfunction: function, stored
account_payment / payment.transaction / invoice_ids (many2many) : previously in module payment
account_payment / payment.transaction / invoices_count (integer) : previously in module payment
account_payment / payment.transaction / payment_id (many2one) : previously in module payment
---XML records in module 'account_payment'---
NEW ir.actions.act_window: account_payment.action_invoice_order_generate_link [renamed from payment module]
NEW ir.model.access: account_payment.payment_link_wizard [renamed from payment module]
NEW ir.model.access: account_payment.payment_refund_wizard [renamed from payment module]
NEW ir.rule: account_payment.payment_token_billing_rule [renamed from payment module] (noupdate)
NEW ir.rule: account_payment.payment_transaction_billing_rule [renamed from payment module] (noupdate)
NEW ir.ui.menu: account_payment.payment_icon_menu [renamed from payment module]
NEW ir.ui.menu: account_payment.payment_provider_menu
NEW ir.ui.menu: account_payment.payment_token_menu [renamed from payment module]
NEW ir.ui.menu: account_payment.payment_transaction_menu [renamed from payment module]
NEW ir.ui.view: account_payment.account_invoice_view_form_inherit_payment
NEW ir.ui.view: account_payment.payment_checkout_inherit
NEW ir.ui.view: account_payment.payment_manage_inherit
NEW ir.ui.view: account_payment.payment_provider_form
NEW ir.ui.view: account_payment.payment_refund_wizard_view_form
NEW ir.ui.view: account_payment.payment_transaction_form
NEW ir.ui.view: account_payment.view_account_journal_form
NEW ir.ui.view: account_payment.view_account_payment_form_inherit_payment
NEW ir.ui.view: account_payment.view_account_payment_register_form_inherit_payment
and for the module account:
---Models in module 'account'---
obsolete model account.account.type
obsolete model account.analytic.default
obsolete model account.bank.statement.cashbox
obsolete model account.bank.statement.closebalance [transient]
obsolete model account.cashbox.line
obsolete model account.common.journal.report [transient]
obsolete model account.common.report [transient]
obsolete model account.print.journal [transient]
obsolete model account.tax.carryover.line
obsolete model account.tax.report
obsolete model account.tax.report.line
obsolete model cash.box.out [transient]
obsolete model report.account.report_journal [abstract]
obsolete model tax.adjustments.wizard [transient]
new model account.report
new model account.report.column
new model account.report.expression
new model account.report.external.value
new model account.report.line
---Fields in module 'account'---
account / account.account / account_type (selection) : NEW required, selection_keys: ['asset_cash', 'asset_current', 'asset_fixed', 'asset_non_current', 'asset_prepayments', 'asset_receivable', 'equity', 'equity_unaffected', 'expense', 'expense_depreciation', 'expense_direct_cost', 'income', 'income_other', 'liability_credit_card', 'liability_current', 'liability_non_current', 'liability_payable', 'off_balance'], hasdefault: compute
account / account.account / include_initial_balance (boolean): NEW isfunction: function, stored
account / account.account / internal_group (selection) : not related anymore
account / account.account / internal_group (selection) : now a function
account / account.account / internal_group (selection) : selection_keys is now '['asset', 'equity', 'expense', 'income', 'liability', 'off_balance']' ('function')
account / account.account / internal_type (selection) : DEL selection_keys: function
account / account.account / non_trade (boolean) : NEW hasdefault: default
account / account.account / user_type_id (many2one) : DEL relation: account.account.type, required
account / account.account.tag / tax_report_line_ids (many2many): DEL relation: account.tax.report.line
account / account.account.template / account_type (selection) : NEW selection_keys: ['asset_cash', 'asset_current', 'asset_fixed', 'asset_non_current', 'asset_prepayments', 'asset_receivable', 'equity', 'equity_unaffected', 'expense', 'expense_depreciation', 'expense_direct_cost', 'income', 'income_other', 'liability_credit_card', 'liability_current', 'liability_non_current', 'liability_payable', 'off_balance']
account / account.account.template / user_type_id (many2one) : DEL relation: account.account.type, required
account / account.account.type / include_initial_balance (boolean): DEL
account / account.account.type / internal_group (selection) : DEL required, selection_keys: ['asset', 'equity', 'expense', 'income', 'liability', 'off_balance']
account / account.account.type / name (char) : DEL required
account / account.account.type / note (text) : DEL
account / account.account.type / type (selection) : DEL required, selection_keys: ['liquidity', 'other', 'payable', 'receivable']
account / account.analytic.applicability / account_prefix (char) : NEW
account / account.analytic.applicability / business_domain (False) : NEW selection_keys: ['bill', 'general', 'invoice'], mode: modify
account / account.analytic.applicability / product_categ_id (many2one) : NEW relation: product.category
account / account.analytic.default / account_id (many2one) : DEL relation: account.account
account / account.analytic.default / analytic_id (many2one) : DEL relation: account.analytic.account
account / account.analytic.default / analytic_tag_ids (many2many) : DEL relation: account.analytic.tag
account / account.analytic.default / company_id (many2one) : DEL relation: res.company
account / account.analytic.default / date_start (date) : DEL
account / account.analytic.default / date_stop (date) : DEL
account / account.analytic.default / partner_id (many2one) : DEL relation: res.partner
account / account.analytic.default / product_id (many2one) : DEL relation: product.product
account / account.analytic.default / sequence (integer) : DEL
account / account.analytic.default / user_id (many2one) : DEL relation: res.users
account / account.analytic.distribution.model / account_prefix (char) : NEW
account / account.analytic.distribution.model / product_categ_id (many2one) : NEW relation: product.category
account / account.analytic.distribution.model / product_id (many2one) : NEW relation: product.product
account / account.analytic.line / general_account_id (many2one) : not related anymore
account / account.analytic.line / journal_id (many2one) : NEW relation: account.journal, isrelated: related, stored
account / account.analytic.line / move_id (many2one) : DEL relation: account.move.line
account / account.analytic.line / move_line_id (many2one) : NEW relation: account.move.line
account / account.analytic.line / partner_id (False) : previously in module hr_timesheet
account / account.bank.statement / _order : _order is now 'first_line_index desc' ('date desc, name desc, id desc')
account / account.bank.statement / attachment_ids (many2many) : NEW relation: ir.attachment
account / account.bank.statement / cashbox_end_id (many2one) : DEL relation: account.bank.statement.cashbox
account / account.bank.statement / cashbox_start_id (many2one) : DEL relation: account.bank.statement.cashbox
account / account.bank.statement / date (date) : now a function
account / account.bank.statement / date_done (datetime) : DEL
account / account.bank.statement / difference (float) : DEL
account / account.bank.statement / first_line_index (char) : NEW isfunction: function, stored
account / account.bank.statement / is_complete (boolean) : NEW isfunction: function, stored
account / account.bank.statement / is_valid_balance_start (boolean): DEL
account / account.bank.statement / journal_id (many2one) : now a function
account / account.bank.statement / line_ids (one2many) : now required
account / account.bank.statement / message_follower_ids (one2many): DEL relation: mail.followers
account / account.bank.statement / message_ids (one2many) : DEL relation: mail.message
account / account.bank.statement / message_main_attachment_id (many2one): DEL relation: ir.attachment
account / account.bank.statement / move_line_ids (one2many) : DEL relation: account.move.line
account / account.bank.statement / previous_statement_id (many2one): DEL relation: account.bank.statement
account / account.bank.statement / sequence_number (integer) : DEL
account / account.bank.statement / sequence_prefix (char) : DEL
account / account.bank.statement / state (selection) : DEL required, selection_keys: ['confirm', 'open', 'posted']
account / account.bank.statement / total_entry_encoding (float) : DEL
account / account.bank.statement / user_id (many2one) : DEL relation: res.users
account / account.bank.statement / website_message_ids (one2many): DEL relation: mail.message
account / account.bank.statement.cashbox / cashbox_lines_ids (one2many) : DEL relation: account.cashbox.line
account / account.bank.statement.cashbox / end_bank_stmt_ids (one2many) : DEL relation: account.bank.statement
account / account.bank.statement.cashbox / start_bank_stmt_ids (one2many): DEL relation: account.bank.statement
account / account.bank.statement.line / _order : _order is now 'internal_index desc' ('statement_id desc, date, sequence, id desc')
account / account.bank.statement.line / auto_post (boolean) : now required
account / account.bank.statement.line / auto_post (boolean) : selection_keys is now 'function' ('False')
account / account.bank.statement.line / auto_post (boolean) : type is now 'selection' ('boolean')
account / account.bank.statement.line / currency_id (many2one) : now a function
account / account.bank.statement.line / internal_index (char) : NEW isfunction: function, stored
account / account.bank.statement.line / invoice_outstanding_credits_debits_widget (text): type is now 'binary' ('text')
account / account.bank.statement.line / invoice_payments_widget (text): type is now 'binary' ('text')
account / account.bank.statement.line / partner_shipping_id (many2one): previously in module sale
account / account.bank.statement.line / state (selection) : now required
account / account.cashbox.line / cashbox_id (many2one) : DEL relation: account.bank.statement.cashbox
account / account.cashbox.line / coin_value (float) : DEL required
account / account.cashbox.line / number (integer) : DEL
account / account.chart.template / account_journal_early_pay_discount_gain_account_id (many2one): NEW relation: account.account.template
account / account.chart.template / account_journal_early_pay_discount_loss_account_id (many2one): NEW relation: account.account.template
account / account.chart.template / complete_tax_set (boolean) : DEL
account / account.chart.template / use_storno_accounting (boolean): NEW hasdefault: default
account / account.journal / default_account_type (many2one): relation is now 'False' ('account.account.type') [nothing to do]
account / account.journal / default_account_type (many2one): type is now 'char' ('many2one')
account / account.journal / payment_sequence (boolean) : NEW hasdefault: default
account / account.journal / type_control_ids (many2many) : DEL relation: account.account.type
account / account.move / attachment_ids (one2many) : NEW relation: ir.attachment
account / account.move / auto_post (boolean) : now required
account / account.move / auto_post (boolean) : selection_keys is now '['at_date', 'monthly', 'no', 'quarterly', 'yearly']' ('False')
account / account.move / auto_post (boolean) : type is now 'selection' ('boolean')
account / account.move / auto_post_origin_id (many2one): NEW relation: account.move
account / account.move / auto_post_until (date) : NEW hasdefault: compute
account / account.move / currency_id (many2one) : now a function
account / account.move / invoice_outstanding_credits_debits_widget (text): type is now 'binary' ('text')
account / account.move / invoice_payments_widget (text): type is now 'binary' ('text')
account / account.move / is_storno (boolean) : NEW hasdefault: compute
account / account.move / partner_shipping_id (many2one): previously in module sale
account / account.move / payment_ids (one2many) : NEW relation: account.payment
account / account.move / quick_edit_total_amount (float): NEW
account / account.move / statement_line_ids (one2many) : NEW relation: account.bank.statement.line
account / account.move / tax_totals_json (char) : DEL
account / account.move.line / _order : _order is now 'date desc, move_name desc, sequence, id' ('date desc, move_name desc, id')
account / account.move.line / account_id (many2one) : now a function
account / account.move.line / amount_currency (float) : now a function
account / account.move.line / analytic_account_id (many2one): DEL relation: account.analytic.account
account / account.move.line / analytic_distribution_stored_char (char): NEW isfunction: function, stored
account / account.move.line / analytic_tag_ids (many2many) : DEL relation: account.analytic.tag
account / account.move.line / balance (float) : not a function anymore
account / account.move.line / credit (float) : now a function
account / account.move.line / debit (float) : now a function
account / account.move.line / discount_amount_currency (float): NEW
account / account.move.line / discount_balance (float) : NEW
account / account.move.line / discount_date (date) : NEW
account / account.move.line / discount_percentage (float) : NEW
account / account.move.line / display_type (selection) : now required
account / account.move.line / display_type (selection) : selection_keys is now '['cogs', 'epd', 'line_note', 'line_section', 'payment_term', 'product', 'rounding', 'tax']' ('['line_note', 'line_section']')
account / account.move.line / exclude_from_invoice_tab (boolean): DEL
account / account.move.line / is_rounding_line (boolean) : DEL
account / account.move.line / partner_id (many2one) : now a function
account / account.move.line / price_subtotal (float) : now a function
account / account.move.line / price_total (float) : now a function
account / account.move.line / recompute_tax_line (boolean) : DEL
account / account.move.line / tax_line_id (many2one) : not a function anymore
account / account.move.line / tax_line_id (many2one) : now related
account / account.partial.reconcile / credit_currency_id (many2one) : not a function anymore
account / account.partial.reconcile / credit_currency_id (many2one) : now related
account / account.partial.reconcile / debit_currency_id (many2one) : not a function anymore
account / account.partial.reconcile / debit_currency_id (many2one) : now related
account / account.partial.reconcile / exchange_move_id (many2one) : NEW relation: account.move
account / account.payment / amount_company_currency_signed (float): is now stored
account / account.payment / auto_post (boolean) : now required
account / account.payment / auto_post (boolean) : selection_keys is now 'function' ('False')
account / account.payment / auto_post (boolean) : type is now 'selection' ('boolean')
account / account.payment / invoice_outstanding_credits_debits_widget (text): type is now 'binary' ('text')
account / account.payment / invoice_payments_widget (text): type is now 'binary' ('text')
account / account.payment / partner_shipping_id (many2one): previously in module sale
account / account.payment.term / display_on_invoice (boolean) : NEW
account / account.payment.term / example_amount (float) : NEW hasdefault: default
account / account.payment.term / example_date (date) : NEW hasdefault: default
account / account.payment.term.line / _order : _order is now 'id' ('sequence, id')
account / account.payment.term.line / day_of_the_month (integer) : DEL
account / account.payment.term.line / days_after (integer) : NEW
account / account.payment.term.line / discount_days (integer) : NEW
account / account.payment.term.line / discount_percentage (float) : NEW
account / account.payment.term.line / end_month (boolean) : NEW
account / account.payment.term.line / months (integer) : NEW required, hasdefault: default
account / account.payment.term.line / option (selection) : DEL required, selection_keys: ['after_invoice_month', 'day_after_invoice_date', 'day_current_month', 'day_following_month']
account / account.payment.term.line / sequence (integer) : DEL
account / account.reconcile.model.line / analytic_account_id (many2one): DEL relation: account.analytic.account
account / account.reconcile.model.line / analytic_distribution_stored_char (char): NEW isfunction: function, stored
account / account.reconcile.model.line / analytic_tag_ids (many2many) : DEL relation: account.analytic.tag
account / account.report / availability_condition (selection): NEW selection_keys: ['always', 'coa', 'country'], hasdefault: compute
account / account.report / chart_template_id (many2one) : NEW relation: account.chart.template
account / account.report / column_ids (one2many) : NEW relation: account.report.column
account / account.report / country_id (many2one) : NEW relation: res.country
account / account.report / default_opening_date_filter (selection): NEW selection_keys: ['last_month', 'last_quarter', 'last_year', 'this_month', 'this_quarter', 'this_year', 'today'], hasdefault: compute
account / account.report / filter_account_type (boolean) : NEW hasdefault: compute
account / account.report / filter_analytic (boolean) : NEW hasdefault: compute
account / account.report / filter_date_range (boolean) : NEW hasdefault: compute
account / account.report / filter_fiscal_position (boolean): NEW hasdefault: compute
account / account.report / filter_growth_comparison (boolean): NEW hasdefault: compute
account / account.report / filter_hierarchy (selection) : NEW selection_keys: ['by_default', 'never', 'optional'], hasdefault: compute
account / account.report / filter_journals (boolean) : NEW hasdefault: compute
account / account.report / filter_multi_company (selection): NEW selection_keys: ['disabled', 'selector', 'tax_units'], hasdefault: compute
account / account.report / filter_partner (boolean) : NEW hasdefault: compute
account / account.report / filter_period_comparison (boolean): NEW hasdefault: compute
account / account.report / filter_show_draft (boolean) : NEW hasdefault: compute
account / account.report / filter_unfold_all (boolean) : NEW hasdefault: compute
account / account.report / filter_unreconciled (boolean) : NEW hasdefault: compute
account / account.report / line_ids (one2many) : NEW relation: account.report.line
account / account.report / load_more_limit (integer) : NEW
account / account.report / name (char) : NEW required
account / account.report / only_tax_exigible (boolean) : NEW
account / account.report / root_report_id (many2one) : NEW relation: account.report
account / account.report / search_bar (boolean) : NEW
account / account.report / variant_report_ids (one2many) : NEW relation: account.report
account / account.report.column / blank_if_zero (boolean) : NEW hasdefault: default
account / account.report.column / custom_audit_action_id (many2one): NEW relation: ir.actions.act_window
account / account.report.column / expression_label (char) : NEW required
account / account.report.column / figure_type (selection) : NEW required, selection_keys: ['date', 'datetime', 'float', 'integer', 'monetary', 'none', 'percentage'], hasdefault: default
account / account.report.column / name (char) : NEW required
account / account.report.column / report_id (many2one) : NEW relation: account.report
account / account.report.column / sequence (integer) : NEW
account / account.report.column / sortable (boolean) : NEW
account / account.report.expression / auditable (boolean) : NEW hasdefault: compute
account / account.report.expression / blank_if_zero (boolean) : NEW
account / account.report.expression / carryover_target (char) : NEW
account / account.report.expression / date_scope (selection) : NEW required, selection_keys: ['from_beginning', 'from_fiscalyear', 'normal', 'previous_tax_period', 'strict_range', 'to_beginning_of_fiscalyear', 'to_beginning_of_period'], hasdefault: default
account / account.report.expression / engine (selection) : NEW required, selection_keys: ['account_codes', 'aggregation', 'custom', 'domain', 'external', 'tax_tags']
account / account.report.expression / figure_type (selection) : NEW selection_keys: ['date', 'datetime', 'float', 'integer', 'monetary', 'none', 'percentage']
account / account.report.expression / formula (char) : NEW required
account / account.report.expression / green_on_positive (boolean) : NEW hasdefault: default
account / account.report.expression / label (char) : NEW required
account / account.report.expression / report_line_id (many2one) : NEW relation: account.report.line, required
account / account.report.expression / subformula (char) : NEW
account / account.report.external.value / carryover_origin_expression_label (char): NEW
account / account.report.external.value / carryover_origin_report_line_id (many2one): NEW relation: account.report.line
account / account.report.external.value / company_id (many2one) : NEW relation: res.company, required, hasdefault: default
account / account.report.external.value / date (date) : NEW required
account / account.report.external.value / foreign_vat_fiscal_position_id (many2one): NEW relation: account.fiscal.position
account / account.report.external.value / name (char) : NEW required
account / account.report.external.value / target_report_expression_id (many2one): NEW relation: account.report.expression, required
account / account.report.external.value / value (float) : NEW required
account / account.report.line / account_codes_formula (char) : NEW
account / account.report.line / action_id (many2one) : NEW relation: ir.actions.actions
account / account.report.line / aggregation_formula (char) : NEW
account / account.report.line / children_ids (one2many) : NEW relation: account.report.line
account / account.report.line / code (char) : NEW
account / account.report.line / domain_formula (char) : NEW
account / account.report.line / expression_ids (one2many) : NEW relation: account.report.expression
account / account.report.line / foldable (boolean) : NEW
account / account.report.line / groupby (char) : NEW
account / account.report.line / hide_if_zero (boolean) : NEW
account / account.report.line / hierarchy_level (integer) : NEW required, hasdefault: compute
account / account.report.line / name (char) : NEW required
account / account.report.line / parent_id (many2one) : NEW relation: account.report.line
account / account.report.line / print_on_new_page (boolean) : NEW
account / account.report.line / report_id (many2one) : NEW relation: account.report, required, hasdefault: compute
account / account.report.line / sequence (integer) : NEW
account / account.tax / name_searchable (char) : NEW
account / account.tax / real_amount (float) : NEW isfunction: function, stored
account / account.tax.carryover.line / amount (float) : DEL required
account / account.tax.carryover.line / company_id (many2one) : DEL relation: res.company, required
account / account.tax.carryover.line / date (date) : DEL required
account / account.tax.carryover.line / foreign_vat_fiscal_position_id (many2one): DEL relation: account.fiscal.position
account / account.tax.carryover.line / name (char) : DEL required
account / account.tax.carryover.line / tax_report_line_id (many2one) : DEL relation: account.tax.report.line
account / account.tax.repartition.line.template / minus_report_expression_ids (many2many): NEW relation: account.report.expression
account / account.tax.repartition.line.template / minus_report_line_ids (many2many): DEL relation: account.tax.report.line
account / account.tax.repartition.line.template / plus_report_expression_ids (many2many): NEW relation: account.report.expression
account / account.tax.repartition.line.template / plus_report_line_ids (many2many): DEL relation: account.tax.report.line
account / account.tax.report / country_id (many2one) : DEL relation: res.country, required
account / account.tax.report / line_ids (one2many) : DEL relation: account.tax.report.line
account / account.tax.report / name (char) : DEL required
account / account.tax.report / root_line_ids (one2many) : DEL relation: account.tax.report.line
account / account.tax.report.line / carry_over_condition_method (selection): DEL selection_keys: ['always_carry_over_and_set_to_0', 'no_negative_amount_carry_over_condition']
account / account.tax.report.line / carry_over_destination_line_id (many2one): DEL relation: account.tax.report.line
account / account.tax.report.line / carryover_line_ids (one2many) : DEL relation: account.tax.carryover.line
account / account.tax.report.line / children_line_ids (one2many) : DEL relation: account.tax.report.line
account / account.tax.report.line / code (char) : DEL
account / account.tax.report.line / formula (char) : DEL
account / account.tax.report.line / is_carryover_persistent (boolean): DEL
account / account.tax.report.line / is_carryover_used_in_balance (boolean): DEL
account / account.tax.report.line / name (char) : DEL required
account / account.tax.report.line / parent_id (many2one) : DEL relation: account.tax.report.line
account / account.tax.report.line / parent_path (char) : DEL
account / account.tax.report.line / report_action_id (many2one) : DEL relation: ir.actions.act_window
account / account.tax.report.line / report_id (many2one) : DEL relation: account.tax.report, required
account / account.tax.report.line / sequence (integer) : DEL required
account / account.tax.report.line / tag_ids (many2many) : DEL relation: account.account.tag
account / account.tax.report.line / tag_name (char) : DEL
account / res.company / account_journal_early_pay_discount_gain_account_id (many2one): NEW relation: account.account
account / res.company / account_journal_early_pay_discount_loss_account_id (many2one): NEW relation: account.account
account / res.company / account_onboarding_create_invoice_state (selection): not stored anymore
account / res.company / account_onboarding_create_invoice_state (selection): now a function
account / res.company / account_onboarding_create_invoice_state_flag (boolean): NEW hasdefault: default
account / res.company / account_storno (boolean) : NEW
account / res.company / account_use_credit_limit (boolean): NEW
account / res.company / early_pay_discount_computation (selection): NEW selection_keys: ['excluded', 'included', 'mixed'], hasdefault: compute
account / res.company / message_follower_ids (one2many): NEW relation: mail.followers
account / res.company / message_ids (one2many) : NEW relation: mail.message
account / res.company / message_main_attachment_id (many2one): NEW relation: ir.attachment
account / res.company / quick_edit_mode (selection) : NEW selection_keys: ['in_invoices', 'out_and_in_invoices', 'out_invoices']
account / res.company / website_message_ids (one2many): NEW relation: mail.message
account / res.partner / credit_limit (float) : previously in module base
account / res.partner.bank / activity_ids (one2many) : NEW relation: mail.activity
account / res.partner.bank / message_follower_ids (one2many): NEW relation: mail.followers
account / res.partner.bank / message_ids (one2many) : NEW relation: mail.message
account / res.partner.bank / message_main_attachment_id (many2one): NEW relation: ir.attachment
account / res.partner.bank / website_message_ids (one2many): NEW relation: mail.message
account / res.users / credit_limit (float) : previously in module base
---XML records in module 'account'---
DEL account.account.type: account.data_account_off_sheet (noupdate)
DEL account.account.type: account.data_account_type_credit_card (noupdate)
DEL account.account.type: account.data_account_type_current_assets (noupdate)
DEL account.account.type: account.data_account_type_current_liabilities (noupdate)
DEL account.account.type: account.data_account_type_depreciation (noupdate)
DEL account.account.type: account.data_account_type_direct_costs (noupdate)
DEL account.account.type: account.data_account_type_equity (noupdate)
DEL account.account.type: account.data_account_type_expenses (noupdate)
DEL account.account.type: account.data_account_type_fixed_assets (noupdate)
DEL account.account.type: account.data_account_type_liquidity (noupdate)
DEL account.account.type: account.data_account_type_non_current_assets (noupdate)
DEL account.account.type: account.data_account_type_non_current_liabilities (noupdate)
DEL account.account.type: account.data_account_type_other_income (noupdate)
DEL account.account.type: account.data_account_type_payable (noupdate)
DEL account.account.type: account.data_account_type_prepayments (noupdate)
DEL account.account.type: account.data_account_type_receivable (noupdate)
DEL account.account.type: account.data_account_type_revenue (noupdate)
DEL account.account.type: account.data_unaffected_earnings (noupdate)
NEW account.payment.term: account.account_payment_term_30_days_end_month_the_10 (noupdate)
NEW account.payment.term: account.account_payment_term_30days_early_discount (noupdate)
NEW account.report: account.generic_tax_report
NEW account.report: account.generic_tax_report_account_tax
NEW account.report: account.generic_tax_report_tax_account
NEW account.report.column: account.generic_tax_report_account_tax_column_net
NEW account.report.column: account.generic_tax_report_account_tax_column_tax
NEW account.report.column: account.generic_tax_report_column_net
NEW account.report.column: account.generic_tax_report_column_tax
NEW account.report.column: account.generic_tax_report_tax_account_column_net
NEW account.report.column: account.generic_tax_report_tax_account_column_tax
NEW ir.actions.act_window: account.action_account_moves_all_grouped_matching
DEL ir.actions.act_window: account.action_account_chart_template_form
DEL ir.actions.act_window: account.action_account_moves_ledger_general
DEL ir.actions.act_window: account.action_account_type_form
DEL ir.actions.act_window: account.action_analytic_default_list
DEL ir.actions.act_window: account.action_bank_statement_line
DEL ir.actions.act_window: account.action_configure_tax_report
DEL ir.actions.act_window: account.action_view_account_bnk_stmt_check
DEL ir.actions.act_window: account.analytic_rule_action_user
DEL ir.actions.act_window: account.tax_adjustments_form
DEL ir.actions.act_window.view: account.action_bank_statement_form_bank
DEL ir.actions.report: account.action_report_journal
NEW ir.model.access: account.access_account_analytic_distribution_invoice
NEW ir.model.access: account.access_account_analytic_distribution_readonly
NEW ir.model.access: account.access_account_analytic_plan_accountant
NEW ir.model.access: account.access_account_report_ac_user
NEW ir.model.access: account.access_account_report_column_ac_user
NEW ir.model.access: account.access_account_report_column_readonly
NEW ir.model.access: account.access_account_report_expression_ac_user
NEW ir.model.access: account.access_account_report_expression_readonly
NEW ir.model.access: account.access_account_report_external_value_ac_user
NEW ir.model.access: account.access_account_report_external_value_readonly
NEW ir.model.access: account.access_account_report_line_ac_user
NEW ir.model.access: account.access_account_report_line_readonly
NEW ir.model.access: account.access_account_report_readonly
DEL ir.model.access: account.access_account_account_type_invoice
DEL ir.model.access: account.access_account_account_type_manager
DEL ir.model.access: account.access_account_account_type_readonly
DEL ir.model.access: account.access_account_analytic_default
DEL ir.model.access: account.access_account_analytic_default_analytic
DEL ir.model.access: account.access_account_analytic_default_invoice
DEL ir.model.access: account.access_account_bank_statement_closebalance
DEL ir.model.access: account.access_account_cashbox
DEL ir.model.access: account.access_account_cashbox_line
DEL ir.model.access: account.access_account_common_journal_report
DEL ir.model.access: account.access_account_common_report
DEL ir.model.access: account.access_account_print_journal
DEL ir.model.access: account.access_account_tax_carryover_line_ac_user
DEL ir.model.access: account.access_account_tax_carryover_line_readonly
DEL ir.model.access: account.access_account_tax_report_ac_user
DEL ir.model.access: account.access_account_tax_report_invoice
DEL ir.model.access: account.access_account_tax_report_line_ac_user
DEL ir.model.access: account.access_account_tax_report_line_readonly
DEL ir.model.access: account.access_cash_box_out
DEL ir.model.access: account.access_tax_adjustments_wizard
ir.model.constraint: account.constraint_account_journal_code_company_uniq (changed definition: is now 'unique(company_id,code)' ('unique(code,company_id)'))
NEW ir.model.constraint: account.constraint_account_journal_group_uniq_name
ir.model.constraint: account.constraint_account_move_line_check_accountable_required_fields (changed definition: is now 'check(display_type in('line_section','line_note') or account_id is not null)' ('check(coalesce(display_type in('line_section','line_note'),'f') or account_id is not null)'))
ir.model.constraint: account.constraint_account_move_line_check_amount_currency_balance_sign (changed definition: is now 'check( display_type in('line_section','line_note') or( (balance <= 0 and amount_currency <= 0) or (balance >= 0 and amount_currency >= 0) ) )' ('check( ( (currency_id != company_currency_id) and ( (debit - credit <= 0 and amount_currency <= 0) or (debit - credit >= 0 and amount_currency >= 0) ) ) or ( currency_id = company_currency_id and round(debit - credit - amount_currency,2) = 0 ) )'))
ir.model.constraint: account.constraint_account_move_line_check_credit_debit (changed definition: is now 'check(display_type in('line_section','line_note') or credit * debit=0)' ('check(credit + debit>=0 and credit * debit=0)'))
NEW ir.model.constraint: account.constraint_account_reconcile_model_name_unique
NEW ir.model.constraint: account.constraint_account_report_line_code_uniq
NEW ir.rule: account.report_external_value_comp_rule (noupdate)
DEL ir.rule: account.account_tax_carryover_line_comp_rule (noupdate)
DEL ir.rule: account.analytic_default_comp_rule (noupdate)
NEW ir.ui.menu: account.account_analytic_plan_menu
NEW ir.ui.menu: account.menu_analytic__distribution_model
DEL ir.ui.menu: account.account_analytic_group_menu
DEL ir.ui.menu: account.account_analytic_tag_menu
DEL ir.ui.menu: account.menu_action_account_moves_journal_bank_cash
DEL ir.ui.menu: account.menu_action_account_moves_journal_misc
DEL ir.ui.menu: account.menu_action_account_moves_journal_purchase
DEL ir.ui.menu: account.menu_action_account_moves_journal_sales
DEL ir.ui.menu: account.menu_action_account_moves_ledger_general
DEL ir.ui.menu: account.menu_action_account_moves_ledger_partner
DEL ir.ui.menu: account.menu_action_tax_adjustment
DEL ir.ui.menu: account.menu_analytic_default_list
DEL ir.ui.menu: account.menu_configure_tax_report
DEL ir.ui.menu: account.menu_finance_entries_accounting_journals
DEL ir.ui.menu: account.menu_finance_entries_accounting_ledgers
NEW ir.ui.view: account.account_analytic_distribution_model_form_inherit
NEW ir.ui.view: account.account_analytic_distribution_model_tree_inherit
NEW ir.ui.view: account.account_analytic_plan_form_view_inherit_account
NEW ir.ui.view: account.portal_invoice_required_fields_form
NEW ir.ui.view: account.view_account_analytic_line_filter_inherit
NEW ir.ui.view: account.view_onboarding_tax_tree
NEW ir.ui.view: account.view_partner_bank_form_inherit_account
NEW ir.ui.view: account.view_tax_group_form
DEL ir.ui.view: account.account_common_report_view
DEL ir.ui.view: account.account_tax_carryover_line_form
DEL ir.ui.view: account.account_tax_carryover_line_tree
DEL ir.ui.view: account.account_tax_report_form
DEL ir.ui.view: account.account_tax_report_line_form
DEL ir.ui.view: account.account_tax_report_line_tree
DEL ir.ui.view: account.account_tax_report_search
DEL ir.ui.view: account.account_tax_report_tree
DEL ir.ui.view: account.cash_box_out_form
DEL ir.ui.view: account.report_journal
DEL ir.ui.view: account.tax_adjustments_wizard
DEL ir.ui.view: account.view_account_analytic_default_form
DEL ir.ui.view: account.view_account_analytic_default_form_search
DEL ir.ui.view: account.view_account_analytic_default_kanban
DEL ir.ui.view: account.view_account_analytic_default_tree
DEL ir.ui.view: account.view_account_bnk_stmt_cashbox
DEL ir.ui.view: account.view_account_bnk_stmt_cashbox_footer
DEL ir.ui.view: account.view_account_bnk_stmt_check
DEL ir.ui.view: account.view_account_chart_template_form
DEL ir.ui.view: account.view_account_chart_template_seacrh
DEL ir.ui.view: account.view_account_chart_template_tree
DEL ir.ui.view: account.view_account_invoice_report_search_analytic_accounting
DEL ir.ui.view: account.view_account_move_line_filter_with_root_selection
DEL ir.ui.view: account.view_account_template_form
DEL ir.ui.view: account.view_account_template_search
DEL ir.ui.view: account.view_account_template_tree
DEL ir.ui.view: account.view_account_type_form
DEL ir.ui.view: account.view_account_type_search
DEL ir.ui.view: account.view_account_type_tree
DEL ir.ui.view: account.view_bank_statement_form
DEL ir.ui.view: account.view_bank_statement_line_form
DEL ir.ui.view: account.view_bank_statement_line_search
DEL ir.ui.view: account.view_bank_statement_line_tree
DEL ir.ui.view: account.view_company_partner_bank_form
DEL ir.ui.view: account.view_move_line_tree_grouped
DEL ir.ui.view: account.view_payment_term_line_form
DEL ir.ui.view: account.view_payment_term_line_tree
NEW res.groups: account.group_delivery_invoice_address [renamed from sale module]
Odoo is running in a docker compose environment with the postgres and im starting the upgrade with the command command: --database odoo --upgrade-path=/mnt/extra-addons/openupgrade_scripts/scripts --load=base,web,openupgrade_framework --update all --stop-after-init
. "openupgrade_framework" and "openupgrade_scripts" are placed in the odoo16 addons directory.
The command with the --update all
should throw logs of the migration.
Okay, in addition to many INFO statements where a "creating or updating database tables" is executed, I also see some errors from Postgres, e.g. check constraint "mail_channel_group_public_id_check" of relation "mail_channel" is violated by some row
, odoo then reports: Table 'mail_channel': unable to add constraint 'mail_channel_group_public_id_check' as CHECK (channel_type = 'channel' OR group_public_id IS NULL)
. But warnings are also returned, e.g: WARNING odoo odoo.addons.openupgrade_framework.odoo_patch.odoo.addons.base.models.ir_ui_view: Cannot render the custom view account.view_account_payment_form for the model account.payment. Suppose you are migrating between major versions of Odoo. Please check the content of the view manually after the migration.
Or ERRORS. e.g.: Error: Field "payment_transaction_id" does not exist
However, the whole upgrade process then aborts in the end after prompting the following message odoo.exceptions.ValidationError: A record of another model account.tax.report was found for the external ID l10n_en.tax_report when trying to create/update a record of the model account.report (13739)
. In the account_report table, however, I cannot find a l10n_en.tax_report field.
I really don't understand what else I need to do as the odoo15 installation is completely empty to test the upgrade process, uses the latest docker image of version 15 and only has account and account_payment installed.
I think openupgrade_framework
is not being really loaded. You can check it at the beginning of the log. Maybe you need to hire an expert in this tool for doing this work.
Hi @mholthausen thank you for reporting this issue. I faced the same error today a JS Uncaught Promise with the following :
Error: Missing field string information for the field 'authorized_transaction_ids' from the 'account.move' model
I used OpenUpgrade on a fresh 15.0 database with only purchase installed.
The issue here was that account_payment module was not installed on v16.0. Basically, between 15.0 and 16.0 part of the payment code was moved to account_payment but the later was not installed on v15 and OpenUpgrade migration script do not force the installation of account_payment so it remains uninstalled on v16 (although it is auto-install in v16.0 code).
The solution is here to install account_payment module.
I am not sure why the account_payment would not auto_install though ? Any idea @pedrobaeza ?
In theory the module should be installed if there's a dependency chain, but if no module depends on it, that's why it's not installed, even due to the auto_install property.
@remi-filament thanks for coming back to this issue. I did that, installed account_payment in v15. The original error (that I could no longer call up invoicing) has been fixed. But now all the other error messages and warnings that I have documented here appear.
@mholthausen as Pedro mentioned in a previous comment, it seems that you are not running OpenUpgrade properly. You should follow instructions from here : https://oca.github.io/OpenUpgrade/040_run_migration.html
Basically, you need to run through the following steps :
In theory the module should be installed if there's a dependency chain, but if no module depends on it, that's why it's not installed, even due to the auto_install property.
@pedrobaeza thanks for your answer, would it then be necessary to take extra action in OpenUpgrade migration scripts to force install this account_payment module ?
I see a number of scenarios, but not sure which one fits better OpenUpgrade strategy :
"auto_install" = ["account"]
I would be in favor of the last option, since more transparent to migration user, but am not sure how it was done in the past on OpenUpgrade (assuming that this problem already existed on previous migrations for other modules) ?
cc @legalsylvain
Option 3 may be the way.
cc @legalsylvain
Well, i'm pretty lost. let's try to sum up :
Module | dependencies | auto_install |
---|---|---|
account | base_setup , product , analytic , portal , digest |
||
payment | account | True |
||
account_payment | payment |
There is no module that depends on account_payment (in CE and EE). So except explicit installation, account_payment
is not installed in a V15 instance.
run_odoo_15 -d test_account_15 -i account --stop-after-init
test_account_15=# select name, state from ir_module_module where name in ('account', 'account_payment', 'payment');
name | state
-----------------+-----------
account | installed
account_payment | uninstalled
payment | installed
*** : Changes, regarding V15.
Module | dependencies | auto_install |
---|---|---|
account | base_setup , product , analytic , portal , digest |
||
payment | portal *** |
*** | |
account_payment | account , payment | account |
In that version account_payment
is auto_installed when account
is installed, that forces payment
installation. So all database with account
installed will have payment
and account_payment
installed.
The following modules depends on account_payment
: CE : website_payment
, sale
, account_payment_invoice_online_payment_patch
+ some EE modules.
run_odoo_16 -d test_account_16 -i account --stop-after-init
test_account_16=# select name, state from ir_module_module where name in ('account', 'account_payment', 'payment');
name | state
-----------------+-----------
account | installed
account_payment | installed
payment | installed
My point of view
account
force install account_payment
force install payment
is nothing but logic for me).I proposed a fix in #4310
Thanks for your analysis @legalsylvain it is even worse if you look at the workaround they implemented in module account_payment_invoice_online_payment_patch with commit https://github.com/odoo/odoo/pull/110177/commits/acd0f4624463e426a6996e1faa7db9e5155ccb32
Basically, in v16 without this patch if you want to disable online payment on invoice, it would uninstall account_payment and therefore all dependencies (mainly sale) so they introduced the patch module to be able to disable online payment without uninstalling account_payment...
Rest of procedure doubts, please use the Discussions section.
Module
account (account.move and account.payment)
Describe the bug
I have installed a fresh odoo15 and installed the app "account". After the upgrade to odoo16 I get the following error when I try to open the view of the Invoicong app in odoo:
I tried to run an upgrade of the app "account" from the App view. But during this process, I get the following error (it says: the field "amount_available_for_refund" does not exist in model "account.payment"):
To Reproduce
Affected versions: 16.0
Steps to reproduce the behavior:
Expected behavior I would expect the app account (without any modules or data) to be accessible after the upgrade without error messages, or at least that the app can be upgraded without errors and can then be used again.