diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index 7d794dbfbde..236c5cd0172 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -25,6 +25,7 @@ import time from openerp import tools from openerp.osv import fields, osv from openerp.tools.translate import _ +from openerp.exceptions import Warning import openerp.addons.decimal_precision as dp import openerp.addons.product.product @@ -589,11 +590,7 @@ class pos_order(osv.osv): if order['amount_return']: cash_journal = session.cash_journal_id if not cash_journal: - cash_journal_ids = filter(lambda st: st.journal_id.type=='cash', session.statement_ids) - if not len(cash_journal_ids): - raise osv.except_osv( _('error!'), - _("No cash statement found for this session. Unable to record returned cash.")) - cash_journal = cash_journal_ids[0].journal_id + raise Warning(_('No cash statement found with cash control enabled for this session. Unable to record returned cash.')) self.add_payment(cr, uid, order_id, { 'amount': -order['amount_return'], 'payment_date': time.strftime('%Y-%m-%d %H:%M:%S'), diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index 07869f103e2..2ac04253576 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -567,6 +567,10 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal return server_ids; }).fail(function (error, event){ if(error.code === 200 ){ // Business Logic Error, not a connection problem + //if warning do not need to dispaly traceback!! + if(error.data.exception_type == 'warning'){ + delete error.data.debug; + } self.pos_widget.screen_selector.show_popup('error-traceback',{ message: error.data.message, comment: error.data.debug