When you have a cash journal, you have the opportunity to use a wizard to easily create the statement. There are two wizards, one to add money in the journal, and one to remove money. To simplify the code and remove some duplication, we are now using only one wizard, that will allow to add and/or remove money from the cash journal. TASK-ID: 1934784
36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, _
|
|
from odoo.exceptions import UserError
|
|
|
|
from odoo.addons.account.wizard.pos_box import CashBox
|
|
|
|
|
|
class PosBox(CashBox):
|
|
_register = False
|
|
|
|
def run(self):
|
|
active_model = self.env.context.get('active_model', False)
|
|
active_ids = self.env.context.get('active_ids', [])
|
|
|
|
if active_model == 'pos.session':
|
|
bank_statements = [session.cash_register_id for session in self.env[active_model].browse(active_ids) if session.cash_register_id]
|
|
if not bank_statements:
|
|
raise UserError(_("There is no cash register for this PoS Session"))
|
|
return self._run(bank_statements)
|
|
else:
|
|
return super(PosBox, self).run()
|
|
|
|
|
|
class PosBoxOut(PosBox):
|
|
_inherit = 'cash.box.out'
|
|
|
|
def _calculate_values_for_statement_line(self, record):
|
|
values = super(PosBoxOut, self)._calculate_values_for_statement_line(record)
|
|
active_model = self.env.context.get('active_model', False)
|
|
active_ids = self.env.context.get('active_ids', [])
|
|
if active_model == 'pos.session' and active_ids:
|
|
values['ref'] = self.env[active_model].browse(active_ids)[0].name
|
|
return values
|