flectra/addons/point_of_sale/wizard/pos_box.py
2018-01-16 02:34:37 -08:00

49 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
from flectra import api, _
from flectra.exceptions import UserError
from flectra.addons.account.wizard.pos_box import CashBox
class PosBox(CashBox):
_register = False
@api.multi
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 PosBoxIn(PosBox):
_inherit = 'cash.box.in'
def _calculate_values_for_statement_line(self, record):
values = super(PosBoxIn, self)._calculate_values_for_statement_line(record=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
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