From 09cfcac899cfcea73e05f10ed9a38bc179f2f18b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20van=20der=20Essen?= Date: Mon, 15 Dec 2014 18:14:28 +0100 Subject: [PATCH] [FIX] point_of_sale: by default cash is returned on the payment method with cash control. If there is no such method, return it on the the first cash payment method --- addons/point_of_sale/point_of_sale.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index d30d754ff24..c36e8d4fb3e 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -622,7 +622,10 @@ class pos_order(osv.osv): if order['amount_return']: cash_journal = session.cash_journal_id if not cash_journal: - raise Warning(_('No cash statement found with cash control enabled for this session. Unable to record returned cash.')) + cash_journal_ids = filter(lambda st: st.journal_id.type=='cash', session.statement_ids) + if not len(cash_journal_ids): + raise Warning(_("No cash statement found for this session. Unable to record returned cash.")) + cash_journal = cash_journal_ids[0].journal_id self.add_payment(cr, uid, order_id, { 'amount': -order['amount_return'], 'payment_date': time.strftime('%Y-%m-%d %H:%M:%S'),