[IMP] Reportings Review
[odoo/odoo.git] / addons / sale_stock / report / sale_report.py
1  # -*- coding: utf-8 -*-
2  ##############################################################################
3  #
4  #    OpenERP, Open Source Management Solution
5  #    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
6  #
7  #    This program is free software: you can redistribute it and/or modify
8  #    it under the terms of the GNU Affero General Public License as
9  #    published by the Free Software Foundation, either version 3 of the
10  #    License, or (at your option) any later version.
11  #
12  #    This program is distributed in the hope that it will be useful,
13  #    but WITHOUT ANY WARRANTY; without even the implied warranty of
14  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  #    GNU Affero General Public License for more details.
16  #
17  #    You should have received a copy of the GNU Affero General Public License
18  #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
19  #
20  ############################################################################## 
21  
22 from openerp.osv import fields, osv
23 from openerp import tools
24
25 class sale_report(osv.osv):
26     _inherit = "sale.report"
27     _columns = {
28         'shipped': fields.boolean('Shipped', readonly=True),
29         'shipped_qty_1': fields.integer('# of Shipped Lines', readonly=True),
30         'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse',readonly=True),
31         'state': fields.selection([
32             ('draft', 'Quotation'),
33             ('waiting_date', 'Waiting Schedule'),
34             ('manual', 'Manual In Progress'),
35             ('progress', 'In Progress'),
36             ('shipping_except', 'Shipping Exception'),
37             ('invoice_except', 'Invoice Exception'),
38             ('done', 'Done'),
39             ('cancel', 'Cancelled')
40             ], 'Order Status', readonly=True),
41     }
42
43     def _select(self):
44         return  super(sale_report, self)._select() + ", s.warehouse_id as warehouse_id, s.shipped, s.shipped::integer as shipped_qty_1"
45
46     def _group_by(self):
47         return super(sale_report, self)._group_by() + ", s.warehouse_id, s.shipped"
48