From d02b4e10add6f5fdc4baed988d7a1585001e5de8 Mon Sep 17 00:00:00 2001 From: "uco (Open ERP)" Date: Tue, 10 Aug 2010 18:59:34 +0530 Subject: [PATCH] [IMP] point_of_sale: When user close the journal, the closing balace will become the opening balance for that journal when it is opened next time. bzr revid: uco@tinyerp.com-20100810132934-u2ezh47k42vcuh03 --- .../wizard/pos_open_statement.py | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/addons/point_of_sale/wizard/pos_open_statement.py b/addons/point_of_sale/wizard/pos_open_statement.py index 0e3af22f2f5..f9b0b2732d6 100644 --- a/addons/point_of_sale/wizard/pos_open_statement.py +++ b/addons/point_of_sale/wizard/pos_open_statement.py @@ -36,7 +36,7 @@ class pos_open_statement(osv.osv_memory): @param context: A standard dictionary @return : Blank Directory """ - list_statement = [] + data = {} mod_obj = self.pool.get('ir.model.data') company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id statement_obj = self.pool.get('account.bank.statement') @@ -51,19 +51,33 @@ class pos_open_statement(osv.osv_memory): if len(ids): raise osv.except_osv(_('Message'), _('You can not open a Cashbox for "%s". \n Please close the cashbox related to. ' %(journal.name))) + statement_ids = sorted(statement_obj.search(cr, uid, [('state', '=', 'confirm'), ('user_id', '=', uid), ('journal_id', '=', journal.id)])) + if statement_ids: + res = [] + statement_ids.reverse() + statement = statement_obj.browse(cr, uid, statement_ids[0]) + for end_bal in statement.ending_details_ids: + dct = { + 'pieces': end_bal.pieces, + 'number': end_bal.number, + } + res.append((0, 0, dct)) + data['starting_details_ids'] = res + else: + data['starting_details_ids'] = statement_obj._get_cash_close_box_lines(cr, uid, []) + number = '' if journal.sequence_id: number = sequence_obj.get_id(cr, uid, journal.sequence_id.id) else: number = sequence_obj.get(cr, uid, 'account.bank.statement') - statement_id = statement_obj.create(cr, uid, {'journal_id': journal.id, - 'company_id': company_id, - 'user_id': uid, - 'state': 'open', - 'name': number, - 'starting_details_ids': statement_obj._get_cash_close_box_lines(cr, uid, []), - }) + data.update({'journal_id': journal.id, + 'company_id': company_id, + 'user_id': uid, + 'state': 'open', + 'name': number }) + statement_id = statement_obj.create(cr, uid, data) statement_obj.button_open(cr, uid, [statement_id], context) data_obj = self.pool.get('ir.model.data')