From 73a8c4306eb91c319fbcc35c9964dabaf6c2214a Mon Sep 17 00:00:00 2001 From: "MTR(OpenERP)" <> Date: Mon, 9 Aug 2010 18:02:34 +0530 Subject: [PATCH] [IMP] sale_journal: clean and improve the module bzr revid: mra@mra-laptop-20100809123234-uxo8vl2fu6bazwbu --- addons/sale_journal/__openerp__.py | 1 + addons/sale_journal/report/__init__.py | 1 + .../report/picking_journal_report.py | 86 ++++++++++++++ .../report/picking_journal_report_view.xml | 105 ++++++++++++++++++ .../report/sale_journal_report.py | 66 ----------- .../report/sale_journal_report_view.xml | 101 ----------------- addons/sale_journal/sale_journal.py | 10 +- addons/sale_journal/sale_journal_view.xml | 10 +- 8 files changed, 203 insertions(+), 177 deletions(-) create mode 100644 addons/sale_journal/report/picking_journal_report.py create mode 100644 addons/sale_journal/report/picking_journal_report_view.xml diff --git a/addons/sale_journal/__openerp__.py b/addons/sale_journal/__openerp__.py index 48b5d3aaeb2..4fde94fc709 100644 --- a/addons/sale_journal/__openerp__.py +++ b/addons/sale_journal/__openerp__.py @@ -54,6 +54,7 @@ 'security/ir.model.access.csv', 'sale_journal_view.xml', 'report/sale_journal_report_view.xml', + 'report/picking_journal_report_view.xml', ], 'demo_xml': ['sale_journal_demo.xml'], 'test': [ diff --git a/addons/sale_journal/report/__init__.py b/addons/sale_journal/report/__init__.py index 0f9b6da35da..bfe23eb8cce 100644 --- a/addons/sale_journal/report/__init__.py +++ b/addons/sale_journal/report/__init__.py @@ -20,5 +20,6 @@ ############################################################################## import sale_journal_report +import picking_journal_report # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/sale_journal/report/picking_journal_report.py b/addons/sale_journal/report/picking_journal_report.py new file mode 100644 index 00000000000..0b447f45cce --- /dev/null +++ b/addons/sale_journal/report/picking_journal_report.py @@ -0,0 +1,86 @@ +# -*- 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 . +# +############################################################################## + +from osv import fields, osv +import tools + +class sale_journal_picking_report(osv.osv): + """ + Picking list by journal and by invoice + """ + _name = "sale.journal.picking.report" + _description = "Picking lists" + _auto = False + _columns = { + 'name': fields.char('Year', size=64, required=False, 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), + + 'invoice_state':fields.selection([ + ("invoiced", "invoiced"), + ("2binvoiced", "to be invoiced"), + ("none", "None") + ], "Invoice state", readonly=True), + 'state': fields.selection([ + ('draft', 'draft'), + ('auto', 'waiting'), + ('confirmed', 'confirmed'), + ('assigned', 'assigned'), + ('done', 'done'), + ('cancel', 'cancel'), + ], 'State', readonly=True), + 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoicing method', readonly=True), + 'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal', readonly=True), + 'quantity': fields.float('Quantities', readonly=True), + 'price_total': fields.float('Total Price', readonly=True), + 'price_average': fields.float('Average Price', readonly=True), + 'count': fields.integer('# of Lines', readonly=True), + } + _order = 'journal_id, name desc, price_total desc' + + def init(self, cr): + tools.drop_view_if_exists(cr, 'sale_journal_picking_report') + + cr.execute(""" + create or replace view sale_journal_picking_report as ( + select + min(l.id) as id, + to_char(s.date, 'YYYY') as name, + to_char(s.date, 'MM') as month, + s.state, + s.invoice_state, + s.invoice_type_id, + s.journal_id, + sum(l.product_qty) as quantity, + count(*) as count, + sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0)) as price_total, + (sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0))/sum(l.product_qty))::decimal(16,2) as price_average + from stock_picking s + right join stock_move l on (s.id=l.picking_id) + left join sale_order_line ol on (l.sale_line_id=ol.id) + group by s.journal_id, s.invoice_type_id, to_char(s.date, 'YYYY'),to_char(s.date, 'MM'),s.state, s.invoice_state + order by s.invoice_type_id, s.invoice_state, s.state + ) + """) + +sale_journal_picking_report() + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file diff --git a/addons/sale_journal/report/picking_journal_report_view.xml b/addons/sale_journal/report/picking_journal_report_view.xml new file mode 100644 index 00000000000..bcfa293a64c --- /dev/null +++ b/addons/sale_journal/report/picking_journal_report_view.xml @@ -0,0 +1,105 @@ + + + + + + + sale.journal.picking.report.tree + sale.journal.picking.report + tree + + + + + + + + + + + + + + + + + + + + sale.journal.picking.report.graph + sale.journal.picking.report + graph + + + + + + + + + + + + + sale.journal.picking.report.search + sale.journal.picking.report + search + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Statistics on picking to invoice + sale.journal.picking.report + ir.actions.act_window + form + tree,form + [('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)] + + + + + + Picking Journal + sale.journal.picking.report + ir.actions.act_window + form + tree,graph + + {'search_default_month':1, 'group_by_no_leaf':1,'group_by':[]} + + + + + + diff --git a/addons/sale_journal/report/sale_journal_report.py b/addons/sale_journal/report/sale_journal_report.py index 2e793d91933..723a7f88722 100644 --- a/addons/sale_journal/report/sale_journal_report.py +++ b/addons/sale_journal/report/sale_journal_report.py @@ -72,70 +72,4 @@ class sale_journal_report(osv.osv): sale_journal_report() -#========================================== -#picking report -#========================================== - - -class sale_journal_picking_report(osv.osv): - """ - Picking list by journal and by invoice - """ - _name = "sale.journal.picking.report" - _description = "Picking lists" - _auto = False - _columns = { - 'name': fields.char('Year', size=64, required=False, 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), - - 'invoice_state':fields.selection([ - ("invoiced", "invoiced"), - ("2binvoiced", "to be invoiced"), - ("none", "None") - ], "Invoice state", readonly=True), - 'state': fields.selection([ - ('draft', 'draft'), - ('auto', 'waiting'), - ('confirmed', 'confirmed'), - ('assigned', 'assigned'), - ('done', 'done'), - ('cancel', 'cancel'), - ], 'State', readonly=True), - 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoicing method', readonly=True), - 'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal', readonly=True), - 'quantity': fields.float('Quantities', readonly=True), - 'price_total': fields.float('Total Price', readonly=True), - 'price_average': fields.float('Average Price', readonly=True), - 'count': fields.integer('# of Lines', readonly=True), - } - _order = 'journal_id, name desc, price_total desc' - - def init(self, cr): - tools.drop_view_if_exists(cr, 'sale_journal_picking_report') - - cr.execute(""" - create or replace view sale_journal_picking_report as ( - select - min(l.id) as id, - to_char(s.date, 'YYYY') as name, - to_char(s.date, 'MM') as month, - s.state, - s.invoice_state, - s.invoice_type_id, - s.journal_id, - sum(l.product_qty) as quantity, - count(*) as count, - sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0)) as price_total, - (sum(l.product_qty*ol.price_unit*(1.0-ol.discount/100.0))/sum(l.product_qty))::decimal(16,2) as price_average - from stock_picking s - right join stock_move l on (s.id=l.picking_id) - left join sale_order_line ol on (l.sale_line_id=ol.id) - group by s.journal_id, s.invoice_type_id, to_char(s.date, 'YYYY'),to_char(s.date, 'MM'),s.state, s.invoice_state - order by s.invoice_type_id, s.invoice_state, s.state - ) - """) - -sale_journal_picking_report() - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_journal/report/sale_journal_report_view.xml b/addons/sale_journal/report/sale_journal_report_view.xml index b4f4b22c8fc..63caea90768 100644 --- a/addons/sale_journal/report/sale_journal_report_view.xml +++ b/addons/sale_journal/report/sale_journal_report_view.xml @@ -84,106 +84,5 @@ - - - - - sale.journal.picking.report.tree - sale.journal.picking.report - tree - - - - - - - - - - - - - - - - - - - - sale.journal.picking.report.graph - sale.journal.picking.report - graph - - - - - - - - - - - - - sale.journal.picking.report.search - sale.journal.picking.report - search - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Statistics on picking to invoice - sale.journal.picking.report - ir.actions.act_window - form - tree,form - [('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)] - - - - - - Picking Journal - sale.journal.picking.report - ir.actions.act_window - form - tree,graph - - {'search_default_month':1, 'group_by_no_leaf':1,'group_by':[]} - - - - diff --git a/addons/sale_journal/sale_journal.py b/addons/sale_journal/sale_journal.py index ac9e66ad699..10f2606955a 100644 --- a/addons/sale_journal/sale_journal.py +++ b/addons/sale_journal/sale_journal.py @@ -43,10 +43,10 @@ class sale_journal(osv.osv): _name = 'sale_journal.sale.journal' _description = 'Sale Journal' _columns = { - 'name': fields.char('Journal', size=64, required=True), - 'code': fields.char('Code', size=16, required=True), - 'user_id': fields.many2one('res.users', 'Responsible', required=True), - 'date': fields.date('Journal date', required=True), + 'name': fields.char('Journal', size=64, required=True, states={'close':[('readonly',True)]}), + 'code': fields.char('Code', size=16, required=True, states={'close':[('readonly',True)]}), + 'user_id': fields.many2one('res.users', 'Responsible', required=True, states={'close':[('readonly',True)]}), + 'date': fields.date('Journal date', required=True, states={'close':[('readonly',True)]}), 'date_created': fields.date('Creation date', readonly=True, required=True), 'date_close': fields.date('Close date ', readonly=True), 'sale_stats_ids': fields.one2many("sale.journal.report", "journal_id", 'Sale stats', readonly=True), @@ -236,7 +236,7 @@ res_partner() class picking(osv.osv): _inherit = "stock.picking" _columns = { - 'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal', domain=[('state','!=', 'close')],help="Picking Journal"), + 'journal_id': fields.many2one('sale_journal.picking.journal', 'Picking Journal', domain=[('state','!=', 'close')],help="Picking Journal"), 'sale_journal_id': fields.many2one('sale_journal.sale.journal', 'Sale Journal'), 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True) } diff --git a/addons/sale_journal/sale_journal_view.xml b/addons/sale_journal/sale_journal_view.xml index 38bf8d90b7e..e59b743ed91 100644 --- a/addons/sale_journal/sale_journal_view.xml +++ b/addons/sale_journal/sale_journal_view.xml @@ -155,7 +155,7 @@ - + @@ -501,7 +501,7 @@ - + @@ -513,7 +513,7 @@ - + @@ -525,7 +525,7 @@ - + @@ -537,7 +537,7 @@ - +