From 06dd77aa000e17224f686ce61b4ca142bad1e102 Mon Sep 17 00:00:00 2001 From: "Vir (Open ERP)" Date: Tue, 15 Jun 2010 18:20:36 +0530 Subject: [PATCH] [ADD,IMP] point_of_sale : new point of sale report added, improvemetns in cashbox bzr revid: vir@tinyerp.com-20100615125036-0u76xmmnk2m98aox --- addons/point_of_sale/__openerp__.py | 1 + .../point_of_sale/account_bank_statement.py | 3 + addons/point_of_sale/report/__init__.py | 1 + .../point_of_sale/report/report_pos_order.py | 89 +++++++++++++++++ .../report/report_pos_order_view.xml | 98 +++++++++++++++++++ addons/point_of_sale/statement_view.xml | 43 +++++++- 6 files changed, 231 insertions(+), 4 deletions(-) create mode 100644 addons/point_of_sale/report/report_pos_order.py create mode 100644 addons/point_of_sale/report/report_pos_order_view.xml diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py index 27707bcf0e0..68d3bd85d8d 100644 --- a/addons/point_of_sale/__openerp__.py +++ b/addons/point_of_sale/__openerp__.py @@ -66,6 +66,7 @@ Main features : 'pos_report.xml', # 'pos_wizard.xml', 'pos_view.xml', + 'report/report_pos_order_view.xml', 'pos_sequence.xml', 'posrule_data.xml', 'pos_data.xml', diff --git a/addons/point_of_sale/account_bank_statement.py b/addons/point_of_sale/account_bank_statement.py index 1f8ccc80162..7b808a7273c 100644 --- a/addons/point_of_sale/account_bank_statement.py +++ b/addons/point_of_sale/account_bank_statement.py @@ -246,6 +246,9 @@ class account_bank_statement(osv.osv): self.write(cr, uid, statement.id, {'balance_end_real':Decimal(str(val_statement_line))+Decimal(str(val2)),'closing_date':time.strftime("%Y-%m-%d %H:%M:%S"),'state':'draft'}) # self.write(cr, uid, statement.id, {'balance_end_real':bal_st+val_statement_line,'closing_date':time.strftime("%Y-%m-%d %H:%M:%S"),'state':'draft'}) return super(account_bank_statement, self).button_confirm(cr, uid, ids, context=None) + + def button_cancel(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state':'draft'}, context=context) account_bank_statement() diff --git a/addons/point_of_sale/report/__init__.py b/addons/point_of_sale/report/__init__.py index 4af503ff9da..9f0f94bb816 100644 --- a/addons/point_of_sale/report/__init__.py +++ b/addons/point_of_sale/report/__init__.py @@ -37,5 +37,6 @@ import pos_sales_user_today_current_user import pos_receipt_with_remboursment import pos_receipt_without_remboursment import point_of_sale_report +import report_pos_order # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/point_of_sale/report/report_pos_order.py b/addons/point_of_sale/report/report_pos_order.py new file mode 100644 index 00000000000..082ff3f434e --- /dev/null +++ b/addons/point_of_sale/report/report_pos_order.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import tools +from osv import fields,osv + +class report_pos_order(osv.osv): + _name = "report.pos.order" + _description = "Point of Sale Orders Statistics" + _auto = False + _columns ={ + 'date': fields.date('Date Order', readonly=True), + 'date_validation': fields.date('Date Confirm', readonly=True), + 'date_payment': fields.date('Date Confirm', readonly=True), + 'year': fields.char('Year', size=4, readonly=True), + 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), + ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), + ('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True), + 'day': fields.char('Day', size=128, readonly=True), + 'partner_id':fields.many2one('res.partner', 'Partner', readonly=True), + 'product_id':fields.many2one('product.product', 'Product', readonly=True), + 'state': fields.selection([('draft', 'Draft'), ('payment', 'Payment'), + ('advance','Advance'), + ('paid', 'Paid'), ('done', 'Done'), ('invoiced', 'Invoiced'), ('cancel', 'Cancel')], + 'State'), + 'user_id':fields.many2one('res.users', 'Salesman', readonly=True), + 'price_total':fields.float('Total Price', readonly=True), + 'shop_id':fields.many2one('sale.shop', 'Shop', readonly=True), + 'company_id':fields.many2one('res.company', 'Company', readonly=True), + 'nbr':fields.integer('# of Lines', readonly=True), + 'product_qty':fields.float('# of Qty', readonly=True), + 'journal_id': fields.many2one('account.journal', 'Journal'), + } + _order = 'date desc' + def init(self, cr): + tools.drop_view_if_exists(cr, 'report_pos_order') + cr.execute(""" + create or replace view report_pos_order as ( + select el.*, + + (select 1) as nbr, + to_date(to_char(po.date_order, 'dd-MM-YYYY'),'dd-MM-YYYY') as date, + po.date_validation as date_validation, + po.date_payment as date_payment, + to_char(po.date_order, 'YYYY') as year, + to_char(po.date_order, 'MM') as month, + to_char(po.date_order, 'YYYY-MM-DD') as day, + po.partner_id as partner_id, + po.state as state, + po.user_id as user_id, + po.shop_id as shop_id, + po.company_id as company_id, + po.sale_journal as journal_id + + from + pos_order as po, + ( select pl.id as id, + pl.product_id as product_id, + pl.qty as product_qty, + sum(pl.qty * pl.price_unit)- sum(pl.qty * pl.price_ded) as price_total, + pl.order_id + from + pos_order_line as pl + left join product_template pt on (pt.id=pl.product_id) + group by + pl.id,pl.order_id, pl.qty,pl.product_id) el + where po.id = el.order_id + ) + """) + +report_pos_order() diff --git a/addons/point_of_sale/report/report_pos_order_view.xml b/addons/point_of_sale/report/report_pos_order_view.xml new file mode 100644 index 00000000000..ecd3d431a3a --- /dev/null +++ b/addons/point_of_sale/report/report_pos_order_view.xml @@ -0,0 +1,98 @@ + + + + + report.pos.order.tree + report.pos.order + tree + + + + + + + + + + + + + + + + + + + + + + + + report.pos.order.search + report.pos.order + search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Point of Sale Analysis + report.pos.order + form + tree,graph + + {'search_default_month':1,'search_default_User':1} + + + + + \ No newline at end of file diff --git a/addons/point_of_sale/statement_view.xml b/addons/point_of_sale/statement_view.xml index a4acd7429ec..65b5fb419d6 100644 --- a/addons/point_of_sale/statement_view.xml +++ b/addons/point_of_sale/statement_view.xml @@ -24,7 +24,7 @@ account.bank.statement tree - + @@ -34,6 +34,9 @@ +