~openerp-commiter/openobject-addons/v61.kfr

« back to all changes in this revision

Viewing changes to point_of_sale/report/pos_users_product.py.WORK

  • Committer: Cubic ERP
  • Date: 2012-11-28 01:42:02 UTC
  • Revision ID: info@cubicerp.com-20121128014202-cyfccd49y1abuv9d
[ADD] kfr

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- encoding: utf-8 -*-
 
2
##############################################################################
 
3
#
 
4
#    OpenERP, Open Source Management Solution
 
5
#    Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
 
6
#    $Id$
 
7
#
 
8
#    This program is free software: you can redistribute it and/or modify
 
9
#    it under the terms of the GNU General Public License as published by
 
10
#    the Free Software Foundation, either version 3 of the License, or
 
11
#    (at your option) any later version.
 
12
#
 
13
#    This program is distributed in the hope that it will be useful,
 
14
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
#    GNU General Public License for more details.
 
17
#
 
18
#    You should have received a copy of the GNU General Public License
 
19
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
20
#
 
21
##############################################################################
 
22
import time
 
23
from report import report_sxw
 
24
 
 
25
 
 
26
class pos_user_product(report_sxw.rml_parse):
 
27
 
 
28
    def __init__(self, cr, uid, name, context):
 
29
        super(pos_user_product, self).__init__(cr, uid, name, context)
 
30
        self.total = 0.0
 
31
        self.localcontext.update({
 
32
                'time': time,
 
33
                'get_data':self._get_data,
 
34
                'get_user':self._get_user,
 
35
                'get_total':self._get_total,
 
36
 
 
37
                })
 
38
    def _get_data(self,object):
 
39
        data={}
 
40
        for o in object :
 
41
            sql1=""" SELECT distinct(o.id) from account_bank_statement s, account_bank_statement_line l,pos_order o,pos_order_line i where  i.order_id=o.id and o.state in ('paid','invoiced') and l.statement_id=s.id and l.pos_statement_id=o.id and s.id=%d"""%(o.id)
 
42
            print sql1
 
43
            self.cr.execute(sql1)
 
44
            data = self.cr.dictfetchall()
 
45
            print "DATA",data
 
46
            a_l=[]
 
47
            for r in data:
 
48
                if r['id']:
 
49
                    a_l.append(r['id'])
 
50
            a = ','.join(map(str,a_l))
 
51
            print a_l, a
 
52
            if len(a_l):
 
53
                sql2="""SELECT sum(qty) as qty,l.price_unit*sum(l.qty) as amt,t.name as name from product_product p, product_template t, pos_order_line l where order_id in (%s) and p.product_tmpl_id=t.id and l.product_id=p.id group by t.name, l.price_unit"""%(a)
 
54
                self.cr.execute(sql2)
 
55
                data = self.cr.dictfetchall()
 
56
            for d in data:
 
57
                self.total += d['amt']
 
58
            return data
 
59
 
 
60
    def _get_user(self,object):
 
61
        for o in object :
 
62
            sql = """select ru.name from account_bank_statement as abs,res_users ru
 
63
                                    where abs.user_id = ru.id
 
64
                                    and abs.id = %d"""%(o.id)
 
65
            self.cr.execute(sql)
 
66
            data = self.cr.fetchone()
 
67
            return data[0]
 
68
    def _get_total(self):
 
69
        return self.total
 
70
 
 
71
report_sxw.report_sxw('report.pos.user.product', 'account.bank.statement', 'addons/statement/report/pos_users_product.rml', parser=pos_user_product)