[IMP]: Improved sale journal report views. Removed This Month/All Months menus.

bzr revid: uco@tinyerp.co.in-20091210073041-d1cyuwb9f28aqvfc
This commit is contained in:
uco (OpenERP) 2009-12-10 13:00:41 +05:30
parent 3ad9db974f
commit cb12465124
9 changed files with 121 additions and 82 deletions

View File

@ -24,6 +24,7 @@ import time
from osv import fields
from osv import osv
from tools.translate import _
import tools
class account_analytic_line(osv.osv):
_name = 'account.analytic.line'
@ -113,20 +114,24 @@ class timesheet_invoice(osv.osv):
_description = "Analytic account costs and revenues"
_auto = False
_columns = {
'name': fields.date('Month', readonly=True),
'name': fields.char('Year',size=64,required=False, readonly=True),
'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, select=True),
'journal_id': fields.many2one('account.analytic.journal', 'Journal', readonly=True),
'quantity': fields.float('Quantities', readonly=True),
'cost': fields.float('Credit', readonly=True),
'revenue': fields.float('Debit', readonly=True)
'revenue': fields.float('Debit', 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),
}
_order = 'name desc, account_id'
def init(self, cr):
tools.drop_view_if_exists(cr, 'report_hr_timesheet_invoice_journal')
cr.execute("""
create or replace view report_hr_timesheet_invoice_journal as (
select
min(l.id) as id,
date_trunc('month', l.date)::date as name,
to_char(l.date, 'YYYY') as name,
to_char(l.date,'MM') as month,
sum(
CASE WHEN l.amount>0 THEN 0 ELSE l.amount
END
@ -141,7 +146,8 @@ class timesheet_invoice(osv.osv):
from account_analytic_line l
LEFT OUTER join product_uom u on (u.id=l.product_uom_id)
group by
date_trunc('month', l.date),
to_char(l.date, 'YYYY'),
to_char(l.date,'MM'),
journal_id,
account_id
)""")

View File

@ -362,29 +362,40 @@
<field name="arch" type="xml">
<graph string="Analytic Entries Stats" type="bar">
<field name="name"/>
<field name="month"/>
<field name="cost" operator="+"/>
<field name="revenue" operator="+"/>
<field group="True" name="journal_id"/>
</graph>
</field>
</record>
<record id="report_hr_timesheet_invoice_journal_search" model="ir.ui.view">
<field name="name">report.hr.timesheet.invoice.journal.search</field>
<field name="model">report.hr.timesheet.invoice.journal</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Analytic Entries Stats">
<group col="8" colspan="4">
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Sale journal in this year"/>
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Sale journal in this month"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="month" select="1"/>
<field name="account_id" select="1"/>
</group>
</search>
</field>
</record>
<record id="report_account_analytic_journal_tree" model="ir.actions.act_window">
<field name="name">Account cost and revenue by journal</field>
<field name="res_model">report.hr.timesheet.invoice.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
<field name="search_view_id" ref="report_hr_timesheet_invoice_journal_search"/>
</record>
<menuitem id="next_id_42" name="All Months" parent="account.next_id_40"/><menuitem action="report_account_analytic_journal_tree" id="report_account_analytic_journal_print" parent="next_id_42"/>
<record id="report_account_analytic_journal_tree_month" model="ir.actions.act_window">
<field name="name">Account cost and revenue by journal (This Month)</field>
<field name="res_model">report.hr.timesheet.invoice.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem id="next_id_43" name="This Month" parent="account.next_id_40"/><menuitem action="report_account_analytic_journal_tree_month" id="report_account_analytic_journal_print_month" parent="next_id_43"/>
<menuitem action="report_account_analytic_journal_tree" id="report_account_analytic_journal_print" parent="account.next_id_40"/>
<act_window domain="[('account_id', '=', active_id)]" id="act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal" name="All Analytic Entries" res_model="account.analytic.line" src_model="account.analytic.account" view_mode="tree,form" view_type="form"/>

View File

@ -57,7 +57,7 @@
<field name="view_mode">tree,graph</field>
<field name="domain">[('state','=','open')]</field>
</record>
<menuitem action="action_analytic_account_tree" id="menu_action_analytic_account_tree" parent="account.next_id_42"/>
<menuitem action="action_analytic_account_tree" id="menu_action_analytic_account_tree" parent="account.next_id_40"/>
</data>
</openerp>

View File

@ -57,7 +57,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,graph</field>
</record>
<menuitem action="action_account_analytic_line_to_invoice" id="account_analytic_lines_to_invoice_report" parent="account.next_id_42"/>
<menuitem action="action_account_analytic_line_to_invoice" id="account_analytic_lines_to_invoice_report" parent="account.next_id_40"/>
<act_window domain="[('account_id', '=', active_id),('invoice_id','=',False),('to_invoice','&lt;&gt;',False)]" id="act_acc_analytic_acc_2_report_acc_analytic_line_to_invoice" name="Lines to Invoice" res_model="account.analytic.line" src_model="account.analytic.account"/>

View File

@ -70,17 +70,6 @@
<menuitem name="Picking by Journal" id="menu_definition_journal_picking_byjournal" parent="stock.menu_stock_root" action="action_definition_picking_journal_tree"/>
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree_all">
<field name="name">Picking by journal</field>
<field name="res_model">sale_journal.picking.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','open')]</field>
<field name="filter" eval="True"/>
</record>
<menuitem name="All Open Journals" id="menu_definition_journal_picking_byjournal_all" parent="menu_definition_journal_picking_byjournal" action="action_definition_picking_journal_tree_all" groups="base.group_extended"/>
<record model="ir.actions.act_window" id="action_invoice_type_tree">
<field name="name">Picking by invoice_method</field>
<field name="name">sale_journal.invoice.type.tree</field>

View File

@ -12,6 +12,7 @@
<field name="arch" type="xml">
<form string="Picking by invoice method">
<field name="name" select="1"/>
<field name="month" select="1"/>
<field name="invoice_state" select="1"/>
<field name="state" select="1"/>
<field name="invoice_type_id" select="1"/>
@ -29,6 +30,7 @@
<field name="arch" type="xml">
<tree string="Packing by invoice method">
<field name="name"/>
<field name="month"/>
<field name="invoice_state"/>
<field name="state"/>
<field name="invoice_type_id"/>
@ -39,6 +41,24 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_picking_invoice_type_stats_search">
<field name="name">sale_journal.invoice.type.stats.search</field>
<field name="model">sale_journal.invoice.type.stats</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Picking by invoice method">
<group col="8" colspan="4">
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Picking by invoice method in this year"/>
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Picking by invoice method in this month"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="month" select="1"/>
<field name="invoice_state" select="1"/>
<field name="state" select="1"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open">
<field name="name">Statistics on picking to invoice</field>
<field name="res_model">sale_journal.invoice.type.stats</field>
@ -48,18 +68,7 @@
<field name="domain">[('invoice_state','=','2binvoiced'),('invoice_type_id','=',active_id)]</field>
</record>
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_month">
<field name="name">Picking by invoice method</field>
<field name="res_model">sale_journal.invoice.type.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
</record>
<menuitem name="Picking Journal" id="menu_definition_journal_reporting" parent="stock.next_id_61"/>
<menuitem name="This Month" id="menu_definition_journal_reporting_this" parent="menu_definition_journal_reporting"/>
<menuitem name="Picking by Invoice Method" id="menu_invoice_type_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_invoice_type_picking_stats_open_menu_month"/>
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_all">
<field name="name">Picking by invoice method</field>
@ -67,10 +76,10 @@
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_picking_invoice_type_stats_search"/>
</record>
<menuitem name="All Months" id="menu_definition_journal_reporting_all" parent="menu_definition_journal_reporting"/>
<menuitem name="Picking by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_invoice_type_picking_stats_open_menu_all"/>
<menuitem name="Picking by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting" action="action_invoice_type_picking_stats_open_menu_all"/>
#
# Packing by journal
@ -83,6 +92,7 @@
<field name="arch" type="xml">
<form string="Picking by journals">
<field name="name" select="1"/>
<field name="month" select="1"/>
<field name="state" select="1"/>
<field name="journal_id" select="1"/>
<field name="quantity"/>
@ -108,27 +118,34 @@
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_month">
<field name="name">Picking by journal</field>
<field name="res_model">sale_journal.picking.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
<record model="ir.ui.view" id="view_picking_journal_stats_search">
<field name="name">sale_journal.picking.stats.search</field>
<field name="model">sale_journal.picking.stats</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Picking by journals">
<group col="8" colspan="4">
<filter icon="terp-sale" string="This Year" domain="[('name','=',time.strftime('%%Y'))]" help="Picking by journals in this year"/>
<filter icon="terp-sale" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="Picking by journals in this month"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="month" select="1"/>
<field name="state" select="1"/>
</group>
</search>
</field>
</record>
<menuitem name="Picking by Journal" id="menu_picking_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_picking_picking_stats_open_menu_month"/>
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_all">
<field name="name">Picking by journal</field>
<field name="res_model">sale_journal.picking.stats</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_picking_journal_stats_search"/>
</record>
<menuitem name="Picking by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_picking_picking_stats_open_menu_all"/>
<menuitem name="Picking by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting" action="action_picking_picking_stats_open_menu_all"/>
</data>
</openerp>

View File

@ -20,13 +20,14 @@
##############################################################################
from osv import fields,osv
import tools
class report_sale_journal_invoice_type_stats(osv.osv):
_name = "sale_journal.invoice.type.stats"
_description = "Stats on packing by invoice method"
_auto = False
_columns = {
'name': fields.date('Month', readonly=True),
'name': fields.char('Year',size=64,required=False, readonly=True),
'invoice_state':fields.selection([
("invoiced","invoiced"),
("2binvoiced","to be invoiced"),
@ -45,14 +46,19 @@ class report_sale_journal_invoice_type_stats(osv.osv):
'price_total': fields.float('Total Price', readonly=True),
'price_average': fields.float('Average Price', readonly=True),
'count': fields.integer('# of Lines', 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),
}
_order = 'state,invoice_state,name desc'
def init(self, cr):
tools.drop_view_if_exists(cr, 'sale_journal_invoice_type_stats')
cr.execute("""
create or replace view sale_journal_invoice_type_stats as (
select
min(l.id) as id,
to_char(s.date, 'YYYY-MM-01') as name,
to_char(s.date, 'YYYY') as name,
to_char(s.date, 'MM') as month,
s.state,
s.invoice_state,
s.invoice_type_id,
@ -63,7 +69,7 @@ class report_sale_journal_invoice_type_stats(osv.osv):
from stock_picking s
left 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.invoice_type_id, to_char(s.date, 'YYYY-MM-01'),s.state, s.invoice_state
group by 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
)
""")
@ -74,7 +80,7 @@ class report_sale_journal_picking(osv.osv):
_description = "Picking lists by Journal"
_auto = False
_columns = {
'name': fields.date('Month', readonly=True),
'name': fields.char('Year',size=64,required=False, readonly=True),
'state': fields.selection([
('draft','draft'),
('auto','waiting'),
@ -88,14 +94,19 @@ class report_sale_journal_picking(osv.osv):
'price_total': fields.float('Total Price', readonly=True),
'price_average': fields.float('Average Price', readonly=True),
'count': fields.integer('# of Lines', 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),
}
_order = 'journal_id,name desc,price_total desc'
def init(self, cr):
tools.drop_view_if_exists(cr, 'sale_journal_picking_stats')
cr.execute("""
create or replace view sale_journal_picking_stats as (
select
min(l.id) as id,
to_char(s.date, 'YYYY-MM-01') as name,
to_char(s.date, 'YYYY') as name,
to_char(s.date, 'MM') as month,
s.state,
s.journal_id,
sum(l.product_qty) as quantity,
@ -105,7 +116,7 @@ class report_sale_journal_picking(osv.osv):
from stock_picking s
right join stock_move l on (s.id=l.picking_id)
right join sale_order_line ol on (l.sale_line_id=ol.id)
group by s.journal_id, to_char(s.date, 'YYYY-MM-01'),s.state
group by s.journal_id, to_char(s.date, 'YYYY'),to_char(s.date, 'MM'),s.state
)
""")
report_sale_journal_picking()

View File

@ -20,13 +20,14 @@
##############################################################################
from osv import fields,osv
import tools
class report_sale_journal_sale(osv.osv):
_name = "sale_journal.sale.stats"
_description = "Sales Orders by Journal"
_auto = False
_columns = {
'name': fields.date('Month', readonly=True),
'name': fields.char('Year',size=64,required=False, readonly=True),
'state': fields.selection([
('draft','Quotation'),
('waiting_date','Waiting Schedule'),
@ -42,14 +43,18 @@ class report_sale_journal_sale(osv.osv):
'price_total': fields.float('Total Price', readonly=True),
'price_average': fields.float('Average Price', readonly=True),
'count': fields.integer('# of Lines', 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),
}
_order = 'journal_id,name desc,price_total desc'
def init(self, cr):
tools.drop_view_if_exists(cr, 'sale_journal_sale_stats')
cr.execute("""
create or replace view sale_journal_sale_stats as (
select
min(l.id) as id,
to_char(s.date_order, 'YYYY-MM-01') as name,
to_char(s.date_order, 'YYYY') as name,
to_char(s.date_order,'MM') as month,
s.state,
s.journal_id,
sum(l.product_uom_qty) as quantity,
@ -58,7 +63,7 @@ class report_sale_journal_sale(osv.osv):
(sum(l.product_uom_qty*l.price_unit)/sum(l.product_uom_qty))::decimal(16,2) as price_average
from sale_order s
right join sale_order_line l on (s.id=l.order_id)
group by s.journal_id, to_char(s.date_order, 'YYYY-MM-01'),s.state
group by s.journal_id, to_char(s.date_order, 'YYYY'),to_char(s.date_order, 'MM'),s.state
)
""")
report_sale_journal_sale()

View File

@ -91,10 +91,31 @@
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_sale_journal_search">
<field name="name">sale_journal.sale.journal.search</field>
<field name="model">sale_journal.sale.journal</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Sales by Journal">
<group col="8" colspan="4">
<filter icon="terp-sale" string="My" domain="[('user_id','=',uid)]" help="My Sale Journals"/>
<filter icon="terp-sale" string="Open" domain="[('state','=','open')]" help="Open Sale Journals"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="user_id" select="1"/>
<field name="date" select="1"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_definition_journal">
<field name="res_model">sale_journal.sale.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_sale_journal_search"/>
</record>
<menuitem name="Sales Journals" id="menu_definition_journal" parent="sale.menu_shop_configuration" action="action_definition_journal"/>
@ -104,32 +125,11 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="search_view_id" ref="view_sale_journal_search"/>
</record>
<menuitem name="Sales by Journal" id="menu_definition_journal_sales" parent="sale.menu_sale_root" action="action_definition_journal_tree"/>
<record model="ir.actions.act_window" id="action_definition_journal_tree_my">
<field name="name">My open journals</field>
<field name="res_model">sale_journal.sale.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('user_id','=',uid),('state','=','open')]</field>
<field name="filter" eval="True"/>
</record>
<menuitem name="My Open Journals" id="menu_definition_journal_sales_my_open" parent="menu_definition_journal_sales" action="action_definition_journal_tree_my" groups="base.group_extended"/>
<record model="ir.actions.act_window" id="action_definition_journal_tree_all">
<field name="name">Open journals</field>
<field name="res_model">sale_journal.sale.journal</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','open')]</field>
<field name="filter" eval="True"/>
</record>
<menuitem name="All Open Journals" id="menu_definition_journal_sales_all_open" parent="menu_definition_journal_sales" action="action_definition_journal_tree_all" groups="base.group_extended"/>
<record model="ir.ui.view" id="sale_journal_sale_order">
<field name="name">sale.order.journal.view.form</field>
<field name="type">form</field>