Passing an id directly to `search_view_id` is not working. It is silently ignored. The framework js code expects an id/name pair, as described in the ORM doc. Most of the time, this will be unoticed as the specified search view being ignored, the default one will be used instead, which is often the same one as there is only one search view. Only 3 occurences are real misbehavior. Note that the `name` of the pair is useless, you can just pass the ID in an array. Working: 'search_view_id': [123, 'search'], 'search_view_id': [123], Not working: 'search_view_id': 123, closes odoo/odoo#72247 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
39 lines
1.8 KiB
Python
39 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, models, _
|
|
from odoo.exceptions import UserError
|
|
|
|
|
|
class PosOpenStatement(models.TransientModel):
|
|
_name = 'pos.open.statement'
|
|
_description = 'Point of Sale Open Statement'
|
|
|
|
def open_statement(self):
|
|
self.ensure_one()
|
|
BankStatement = self.env['account.bank.statement']
|
|
journals = self.env['account.journal'].search([('journal_user', '=', True)])
|
|
if not journals:
|
|
raise UserError(_('You have to define which payment method must be available in the point of sale by reusing existing bank and cash through "Accounting / Configuration / Journals / Journals". Select a journal and check the field "PoS Payment Method" from the "Point of Sale" tab. You can also create new payment methods directly from menu "PoS Backend / Configuration / Payment Methods".'))
|
|
|
|
for journal in journals:
|
|
if journal.sequence_id:
|
|
number = journal.sequence_id.next_by_id()
|
|
else:
|
|
raise UserError(_("No sequence defined on the journal"))
|
|
BankStatement += BankStatement.create({'journal_id': journal.id, 'user_id': self.env.uid, 'name': number})
|
|
|
|
tree_id = self.env.ref('account.view_bank_statement_tree').id
|
|
form_id = self.env.ref('account.view_bank_statement_form').id
|
|
search_id = self.env.ref('account.view_bank_statement_search').id
|
|
|
|
return {
|
|
'type': 'ir.actions.act_window',
|
|
'name': _('List of Cash Registers'),
|
|
'view_mode': 'tree,form',
|
|
'res_model': 'account.bank.statement',
|
|
'domain': str([('id', 'in', BankStatement.ids)]),
|
|
'views': [(tree_id, 'tree'), (form_id, 'form')],
|
|
'search_view_id': [search_id],
|
|
}
|