From b461dd366fb42ad42eaf46112acb8d8283704662 Mon Sep 17 00:00:00 2001 From: "Sanjay Gohel (Open ERP)" Date: Fri, 5 Oct 2012 12:30:33 +0530 Subject: [PATCH] [IMP]discount shown on ticket. if pos have no order lines it can not validate for ticket print. and improve report of sale detail bzr revid: sgo@tinyerp.com-20121005070033-o51n2w72j7322zg5 --- addons/point_of_sale/report/pos_details.py | 22 ++++++++++--------- addons/point_of_sale/report/pos_details.rml | 2 +- addons/point_of_sale/static/src/js/screens.js | 3 +++ addons/point_of_sale/static/src/xml/pos.xml | 13 ++++++++++- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/addons/point_of_sale/report/pos_details.py b/addons/point_of_sale/report/pos_details.py index f8565a8776a..293eeb722a3 100644 --- a/addons/point_of_sale/report/pos_details.py +++ b/addons/point_of_sale/report/pos_details.py @@ -91,16 +91,17 @@ class pos_details(report_sxw.rml_parse): def _get_sum_dis_2(self): return self.discount or 0.0 - def _get_sum_discount(self, objects): + def _get_sum_discount(self, form): #code for the sum of discount value - return reduce(lambda acc, object: - acc + reduce( - lambda sum_dis, line: - sum_dis + ((line.price_unit * line.qty) * (line.discount / 100)), - object.lines, - 0.0), - objects, - 0.0) + pos_obj = self.pool.get('pos.order') + user_obj = self.pool.get('res.users') + user_ids = form['user_ids'] or self._get_all_users() + company_id = user_obj.browse(self.cr, self.uid, self.uid).company_id.id + pos_ids = pos_obj.search(self.cr, self.uid, [('date_order','>=',form['date_start'] + ' 00:00:00'),('date_order','<=',form['date_end'] + ' 23:59:59'),('user_id','in',user_ids),('company_id','=',company_id)]) + for pos in pos_obj.browse(self.cr, self.uid, pos_ids): + for pol in pos.lines: + self.total_discount += ((pol.price_unit * pol.qty) * (pol.discount / 100)) + return self.total_discount or False def _get_payments(self, form): statement_line_obj = self.pool.get("account.bank.statement.line") @@ -179,11 +180,12 @@ class pos_details(report_sxw.rml_parse): self.qty = 0.0 self.total_invoiced = 0.0 self.discount = 0.0 + self.total_discount = 0.0 self.localcontext.update({ 'time': time, 'strip_name': self._strip_name, 'getpayments': self._get_payments, - 'getsumdisc': self._get_sum_dis_2, + 'getsumdisc': self._get_sum_discount, 'gettotalofthaday': self._total_of_the_day, 'gettaxamount': self._get_tax_amount, 'pos_sales_details':self._pos_sales_details, diff --git a/addons/point_of_sale/report/pos_details.rml b/addons/point_of_sale/report/pos_details.rml index b0019133009..8c20a786b6f 100644 --- a/addons/point_of_sale/report/pos_details.rml +++ b/addons/point_of_sale/report/pos_details.rml @@ -373,7 +373,7 @@ Total discount - [[ formatLang(getsumdisc(), dp='Sale Price') ]] [[ company.currency_id.symbol ]] + [[ formatLang(getsumdisc(data['form']), dp='Sale Price') ]] [[ company.currency_id.symbol ]] diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index 1ad03c5ead1..1f8a35c3105 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -966,6 +966,9 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa this.$('#payment-paid-total').html(paidTotal.toFixed(2)); this.$('#payment-remaining').html(remaining.toFixed(2)); this.$('#payment-change').html(change.toFixed(2)); + if((currentOrder.selected_orderline == undefined)) + remaining = 1 + if(this.pos_widget.action_bar){ this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0); } diff --git a/addons/point_of_sale/static/src/xml/pos.xml b/addons/point_of_sale/static/src/xml/pos.xml index 854dd61cc1b..49864f8ae68 100644 --- a/addons/point_of_sale/static/src/xml/pos.xml +++ b/addons/point_of_sale/static/src/xml/pos.xml @@ -541,6 +541,7 @@
+

@@ -553,12 +554,22 @@ + +
  • + % discount +
  • +
    - + + +
  • + - +
  • +