Files
odoo_source/addons/point_of_sale/wizard/pos_box.py
T
Robin Heinz 2eb1cde534 [IMP] account, point_of_sale: take money from cash journal
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
2019-07-23 07:41:20 +00:00

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