2018-01-16 06:58:15 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
2018-01-16 11:34:37 +01:00
|
|
|
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
|
2018-01-16 06:58:15 +01:00
|
|
|
|
2018-01-16 11:34:37 +01:00
|
|
|
from flectra import api, _
|
|
|
|
from flectra.exceptions import UserError
|
2018-01-16 06:58:15 +01:00
|
|
|
|
2018-01-16 11:34:37 +01:00
|
|
|
from flectra.addons.account.wizard.pos_box import CashBox
|
2018-01-16 06:58:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
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
|