[FIX] purchase report
bzr revid: fp@tinyerp.com-20100613090134-4hs79c7709pmhltr
This commit is contained in:
parent
8dfe66803b
commit
1ff14e9ceb
|
@ -2,13 +2,13 @@
|
|||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem icon="terp-graph" id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/>
|
||||
<menuitem icon="terp-graph" id="base.dashboard" name="Dashboards" sequence="2" parent="base.reporting_menu"/>
|
||||
<menuitem
|
||||
id="menu_purchase_deshboard"
|
||||
name="Purchase"
|
||||
parent="base.dashboard"/>
|
||||
|
||||
<record id="purchase_draft" model="ir.actions.act_window">
|
||||
<record id="purchase_draft" model="ir.actions.act_window">
|
||||
<field name="name">Draft Purchases</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.order</field>
|
||||
|
@ -17,7 +17,7 @@
|
|||
<field name="domain">[('date_order','>',time.strftime('%Y-01-01 00:00:00')),('date_order','<',time.strftime('%Y-12-31 23:59:59')), ('state','=','draft')]</field>
|
||||
<field name="search_view_id" ref="purchase.purchase_order_tree"/>
|
||||
</record>
|
||||
<record id="purchase_waiting" model="ir.actions.act_window">
|
||||
<record id="purchase_waiting" model="ir.actions.act_window">
|
||||
<field name="name">Quotation Request</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">purchase.order</field>
|
||||
|
@ -47,7 +47,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="open_board_purchase" model="ir.actions.act_window">
|
||||
<record id="open_board_purchase" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
<field name="view_type">form</field>
|
||||
|
@ -55,7 +55,7 @@
|
|||
<field name="usage">menu</field>
|
||||
<field name="view_id" ref="board_purchase_form"/>
|
||||
</record>
|
||||
<menuitem
|
||||
<menuitem
|
||||
action="open_board_purchase"
|
||||
icon="terp-graph"
|
||||
id="menu_board_purchase"
|
||||
|
|
|
@ -65,7 +65,6 @@ class purchase_order(osv.osv):
|
|||
res[order.id]['amount_tax']=cur_obj.round(cr, uid, cur, val)
|
||||
res[order.id]['amount_untaxed']=cur_obj.round(cr, uid, cur, val1)
|
||||
res[order.id]['amount_total']=res[order.id]['amount_untaxed'] + res[order.id]['amount_tax']
|
||||
print res
|
||||
return res
|
||||
|
||||
def _set_minimum_planned_date(self, cr, uid, ids, name, value, arg, context):
|
||||
|
@ -172,9 +171,11 @@ class purchase_order(osv.osv):
|
|||
'invoice_id': fields.many2one('account.invoice', 'Invoice', readonly=True),
|
||||
'picking_ids': fields.one2many('stock.picking', 'purchase_id', 'Picking List', readonly=True, help="This is the list of picking list that have been generated for this purchase"),
|
||||
'shipped':fields.boolean('Received', readonly=True, select=True),
|
||||
'shipped_rate': fields.function(_shipped_rate, method=True, string='Received', type='float'),
|
||||
'shipped_rate': fields.function(_shipped_rate, method=True, string='Received', type='float',
|
||||
store=True), # Improve the store=True or remove from report
|
||||
'invoiced': fields.function(_invoiced, method=True, string='Invoiced & Paid', type='boolean'),
|
||||
'invoiced_rate': fields.function(_invoiced_rate, method=True, string='Invoiced', type='float'),
|
||||
'invoiced_rate': fields.function(_invoiced_rate, method=True, string='Invoiced', type='float',
|
||||
store=True), # Improve the store=True or remove from report
|
||||
'invoice_method': fields.selection([('manual','Manual'),('order','From Order'),('picking','From Picking')], 'Invoicing Control', required=True,
|
||||
help="From Order: a draft invoice will be pre-generated based on the purchase order. The accountant " \
|
||||
"will just have to validate this invoice for control.\n" \
|
||||
|
|
|
@ -31,7 +31,7 @@ class purchase_report(osv.osv):
|
|||
_description = "Purchases Orders"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'date': fields.date('Date order', readonly=True),
|
||||
'date': fields.date('Order Date', readonly=True),
|
||||
'name': fields.char('Year',size=64,required=False, readonly=True),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'state': fields.selection([
|
||||
|
@ -44,32 +44,26 @@ class purchase_report(osv.osv):
|
|||
('done','Done'),
|
||||
('cancel','Cancel')
|
||||
], 'Order State', readonly=True),
|
||||
'invoice_method': fields.selection([
|
||||
('manual','Manual'),
|
||||
('order','From Order'),
|
||||
('picking','From Picking')
|
||||
],'Invoicing Control', readonly=True),
|
||||
'product_id':fields.many2one('product.product', 'Product', readonly=True),
|
||||
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', readonly=True),
|
||||
'location_id': fields.many2one('stock.location', 'Destination', readonly=True),
|
||||
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position',readonly=True),
|
||||
'partner_id':fields.many2one('res.partner', 'Partner', readonly=True),
|
||||
'partner_address_id':fields.many2one('res.partner.address', 'Address Contact Name', readonly=True),
|
||||
'dest_address_id':fields.many2one('res.partner.address', 'Dest. Address Contact Name',readonly=True),
|
||||
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', readonly=True),
|
||||
'date_approve':fields.date('Date Approved', readonly=True),
|
||||
'expected_date':fields.date('Expected Date', readonly=True),
|
||||
'validator' : fields.many2one('res.users', 'Validated by', readonly=True),
|
||||
'validator' : fields.many2one('res.users', 'Validated By', readonly=True),
|
||||
'company_id':fields.many2one('res.company', 'Company', readonly=True),
|
||||
'shipped_qty':fields.integer('Received Qty', readonly=True),
|
||||
'invoiced_qty':fields.integer('Invoiced Qty', readonly=True),
|
||||
'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
|
||||
'delay':fields.float('Days to Close', digits=(16,2), readonly=True),
|
||||
'delay_pass':fields.float('Overpassed expected', digits=(16,2), readonly=True),
|
||||
'shipped_qty':fields.float('Received', digits=(16,2), readonly=True, group_operator='avg'),
|
||||
'invoiced_qty':fields.float('Invoiced', digits=(16,2), readonly=True, group_operator='avg'),
|
||||
'delay':fields.float('Days to Validate', digits=(16,2), readonly=True, group_operator="avg"),
|
||||
'delay_pass':fields.float('Days to Deliver', digits=(16,2), readonly=True, group_operator="avg"),
|
||||
'quantity': fields.float('# of Products', readonly=True),
|
||||
'price_total': fields.float('Total Price', readonly=True),
|
||||
'price_average': fields.float('Average Price', readonly=True),
|
||||
'nbr': fields.integer('# of Ordered Lines', readonly=True),
|
||||
'price_average': fields.float('Unit Price', readonly=True, group_operator="avg"),
|
||||
'nbr': fields.integer('# of PO 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),
|
||||
|
||||
|
@ -94,17 +88,15 @@ class purchase_report(osv.osv):
|
|||
s.validator,
|
||||
s.warehouse_id as warehouse_id,
|
||||
s.partner_id as partner_id,
|
||||
s.fiscal_position,
|
||||
s.create_uid as user_id,
|
||||
s.company_id as company_id,
|
||||
s.invoice_method,
|
||||
s.shipped::integer as shipped_qty,
|
||||
l.invoiced::integer as invoiced_qty,
|
||||
avg(s.shipped_rate) as shipped_qty,
|
||||
avg(s.invoiced_rate) as invoiced_qty,
|
||||
l.product_id,
|
||||
s.location_id as location_id,
|
||||
sum(l.product_qty*u.factor) as quantity,
|
||||
extract(epoch from age(s.date_approve,s.date_order))/(24*60*60)::decimal(16,2) as delay,
|
||||
extract(epoch from age(s.minimum_planned_date,s.date_order))/(24*60*60)::decimal(16,2) as delay_pass,
|
||||
extract(epoch from age(l.date_planned,s.date_order))/(24*60*60)::decimal(16,2) as delay_pass,
|
||||
count(*) as nbr,
|
||||
l.price_unit*l.product_qty*u.factor as price_total,
|
||||
(sum(l.product_qty*l.price_unit)/sum(l.product_qty*u.factor))::decimal(16,2) as price_average
|
||||
|
@ -115,15 +107,13 @@ class purchase_report(osv.osv):
|
|||
group by
|
||||
s.company_id,
|
||||
s.create_uid,
|
||||
s.shipped,
|
||||
l.invoiced,
|
||||
s.partner_id,
|
||||
l.product_qty,
|
||||
u.factor,
|
||||
s.location_id,
|
||||
l.price_unit,
|
||||
s.date_approve,
|
||||
s.minimum_planned_date,
|
||||
l.date_planned,
|
||||
date_trunc('day',s.minimum_planned_date),
|
||||
s.partner_address_id,
|
||||
s.pricelist_id,
|
||||
|
@ -135,74 +125,8 @@ class purchase_report(osv.osv):
|
|||
to_char(s.date_order, 'MM'),
|
||||
to_char(s.date_order, 'YYYY-MM-DD'),
|
||||
s.state,
|
||||
s.warehouse_id,
|
||||
s.fiscal_position,
|
||||
s.invoice_method
|
||||
s.warehouse_id
|
||||
)
|
||||
""")
|
||||
purchase_report()
|
||||
|
||||
class purchase_order_qty_amount(osv.osv):
|
||||
_name = "purchase.order.qty.amount"
|
||||
_description = "Quantity and amount per month"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'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),
|
||||
'total_qty' : fields.float('Total Qty'),
|
||||
'total_amount' : fields.float('Total Amount'),
|
||||
|
||||
}
|
||||
def init(self, cr):
|
||||
tools.sql.drop_view_if_exists(cr, 'purchase_order_qty_amount')
|
||||
cr.execute("""
|
||||
create or replace view purchase_order_qty_amount as (
|
||||
select
|
||||
min(id) as id,
|
||||
to_char(create_date, 'MM') as month,
|
||||
sum(product_qty) as total_qty,
|
||||
sum(price_unit*product_qty) as total_amount
|
||||
from
|
||||
purchase_order_line
|
||||
where
|
||||
to_char(create_date,'YYYY') = to_char(current_date,'YYYY')
|
||||
group by
|
||||
to_char(create_date, 'MM')
|
||||
|
||||
)
|
||||
""")
|
||||
purchase_order_qty_amount()
|
||||
|
||||
class purchase_order_by_user(osv.osv):
|
||||
_name = "purchase.order.by.user"
|
||||
_description = "Purchase Order by user per month"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name' : fields.char('User',size=64,required=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),
|
||||
'nbr' : fields.integer('Total Orders'),
|
||||
|
||||
}
|
||||
_order = 'name desc'
|
||||
def init(self, cr):
|
||||
tools.sql.drop_view_if_exists(cr, 'purchase_order_by_user')
|
||||
cr.execute("""
|
||||
create or replace view purchase_order_by_user as (
|
||||
select
|
||||
min(po.id) as id,
|
||||
rs.name as name,
|
||||
count(po.id) as nbr,
|
||||
to_char(po.date_order, 'MM') as month
|
||||
from
|
||||
purchase_order as po,res_users as rs
|
||||
where
|
||||
po.create_uid = rs.id
|
||||
group by
|
||||
rs.name,po.date_order
|
||||
|
||||
)
|
||||
""")
|
||||
purchase_order_by_user()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<field name="arch" type="xml">
|
||||
<graph string="Purchase Orders Statistics" type="bar">
|
||||
<field name="product_id"/>
|
||||
<field name="quantity" operator="+"/>
|
||||
<field name="price_total" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
|
@ -20,13 +19,13 @@
|
|||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Purchase Orders Statistics">
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="date_approve" invisible="1"/>
|
||||
<field name="expected_date" invisible="1"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="partner_id" invisible="1"/>
|
||||
<field name="date" invisible="1"/>
|
||||
<field name="date_approve" invisible="1"/>
|
||||
<field name="expected_date" invisible="1"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="partner_id" invisible="1"/>
|
||||
<field name="product_id" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="warehouse_id" invisible="1"/>
|
||||
|
@ -34,14 +33,14 @@
|
|||
<field name="company_id" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="location_id" invisible="1"/>
|
||||
<field name="nbr" sum="# of Lines"/>
|
||||
<field name="shipped_qty" sum="# of received"/>
|
||||
<field name="invoiced_qty" sum="# of invoiced"/>
|
||||
<field name="quantity" sum="# Qty"/>
|
||||
<field name="nbr"/>
|
||||
<field name="shipped_qty" widget="progressbar"/>
|
||||
<field name="invoiced_qty" widget="progressbar"/>
|
||||
<field name="quantity" sum="# of Products"/>
|
||||
<field name="price_average" avg="Average Price"/>
|
||||
<field name="price_total" sum="Total Price"/>
|
||||
<field name="delay" sum="# Days to close"/>
|
||||
<field name="delay_pass" sum="Total Price"/>
|
||||
<field name="price_total" sum="Total Price"/>
|
||||
<field name="delay"/>
|
||||
<field name="delay_pass"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -53,65 +52,56 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Purchase Orders">
|
||||
<group colspan="10" col="12">
|
||||
<filter icon="terp-purchase" string="This Year"
|
||||
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Tasks performed in this year"/>
|
||||
<filter icon="terp-purchase" string="This Year"
|
||||
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')),('date','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Tasks performed in this year"/>
|
||||
<filter icon="terp-purchase" string="This Month"
|
||||
name="month"
|
||||
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Tasks performed in this month"/>
|
||||
name="month"
|
||||
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Tasks performed in this month"/>
|
||||
<filter icon="gtk-media-rewind"
|
||||
string=" 7 Days "
|
||||
string="7 Days"
|
||||
separator="1"
|
||||
domain="[('date','<=', time.strftime('%%Y-%%m-%%d')), ('date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Tasks during last 7 days"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-purchase"
|
||||
string="Quotations"
|
||||
domain="[('state','=','draft')]"/>
|
||||
string="Quotations"
|
||||
name="quotes"
|
||||
domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-purchase"
|
||||
string="Waiting Schedule"
|
||||
domain="[('state','=','waiting_date')]"/>
|
||||
<filter icon="terp-purchase"
|
||||
string="Manual in progress"
|
||||
domain="[('state','=','manual')]"/>
|
||||
<filter icon="terp-purchase" string="Done" domain="[('state','=','done')]"/>
|
||||
|
||||
string="Orders"
|
||||
name="orders"
|
||||
domain="[('state','<>','draft'),('state','<>','cancel')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="partner_id" string="Supplier"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-purchase"
|
||||
string="Purchase Non User"
|
||||
help="Purchase Non User"
|
||||
domain="[('user_id','=',False)]"/>
|
||||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="user_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="10" col="12">
|
||||
<filter string="Supplier" name="group_partner_id" icon="terp-purchase" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Product" name="group_product_id" icon="terp-purchase" context="{'group_by':'product_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Responsible" name="Responsible" icon="terp-purchase" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Supplier" name="partner_id" icon="terp-purchase" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Validated by" icon="terp-purchase" context="{'group_by':'validator'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Product" icon="terp-purchase" context="{'group_by':'product_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="State" icon="terp-purchase" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Company" icon="terp-purchase" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<filter string="Warehouse" icon="terp-purchase" context="{'group_by':'warehouse_id'}"/>
|
||||
<filter string="Destination" icon="terp-purchase" context="{'group_by':'location_id'}"/>
|
||||
<filter string="Company" icon="terp-purchase" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="State" icon="terp-purchase" context="{'group_by':'state'}"/>
|
||||
<filter string="Day" icon="terp-purchase" context="{'group_by':'day'}"/>
|
||||
<filter string="Month" icon="terp-purchase" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-purchase" context="{'group_by':'name'}"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended filters..." colspan="10" col="12" groups="base.group_extended">
|
||||
<field name="date"/>
|
||||
<field name="date_approve"/>
|
||||
<field name="expected_date"/>
|
||||
<newline/>
|
||||
<field name="invoice_method"/>
|
||||
<field name="warehouse_id" widget="selection"/>
|
||||
<field name="validator" widget="selection"/>
|
||||
<separator orientation="vertical"/>
|
||||
|
@ -127,77 +117,29 @@
|
|||
<field name="res_model">purchase.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,graph</field>
|
||||
<field name="search_view_id" ref="view_purchase_order_search"/>
|
||||
<field name="context">{'search_default_month':1,'search_default_Responsible':1,'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
<field name="context">{'search_default_month':1,'search_default_group_partner_id':1,'search_default_group_product_id': 1, 'search_default_orders': 1, 'group_by_no_leaf':1,'group_by':[]}</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="base.next_id_73" name="Reporting" parent="base.menu_purchase_root" sequence="8"/>
|
||||
<menuitem action="action_purchase_order_report_all" id="menu_action_purchase_order_report_all" parent="base.next_id_73" sequence="3"/>
|
||||
|
||||
<record model="ir.ui.view" id="view_purchase_order_qty_amount_graph">
|
||||
<field name="name">purchase.order.qty.amount.graph</field>
|
||||
<field name="model">purchase.order.qty.amount</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Total Qty and Amount by month" type="bar">
|
||||
<field name="month"/>
|
||||
<field name="total_qty" operator="+"/>
|
||||
<field name="total_amount" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_purchase_order_qty_amount_all" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Orders by Month</field>
|
||||
<field name="res_model">purchase.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="context">{'group_by_no_leaf': 1, 'group_by': ['month']}</field>
|
||||
<field name="domain">[('date','>=',time.strftime('%Y-01-01'))]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_purchase_order_qty_amount_tree">
|
||||
<field name="name">purchase.order.qty.amount.tree</field>
|
||||
<field name="model">purchase.order.qty.amount</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Total Qty and Amount by month" >
|
||||
<field name="month"/>
|
||||
<field name="total_qty" />
|
||||
<field name="total_amount"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="action_purchase_order_by_user_all" model="ir.actions.act_window">
|
||||
<field name="name">Purchase Orders by Supplier</field>
|
||||
<field name="res_model">purchase.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="context">{'group_by_no_leaf': 1, 'group_by': ['partner_id']}</field>
|
||||
<field name="domain">[('date','>=',time.strftime('%Y-01-01'))]</field>
|
||||
</record>
|
||||
|
||||
<record id="action_purchase_order_qty_amount_all" model="ir.actions.act_window">
|
||||
<field name="name">Total Qty and Amount by month</field>
|
||||
<field name="res_model">purchase.order.qty.amount</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_purchase_order_by_user_graph">
|
||||
<field name="name">purchase.order.by.user.graph</field>
|
||||
<field name="model">purchase.order.by.user</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Total Orders by User per month" type="bar">
|
||||
<field name="name" />
|
||||
<field name="month" group="True" />
|
||||
<field name="nbr" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_purchase_order_by_user_tree">
|
||||
<field name="name">purchase.order.by.user.tree</field>
|
||||
<field name="model">purchase.order.by.user</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Total Orders by User per month" >
|
||||
<field name="name"/>
|
||||
<field name="month"/>
|
||||
<field name="nbr" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_purchase_order_by_user_all" model="ir.actions.act_window">
|
||||
<field name="name">Total Orders by User per month</field>
|
||||
<field name="res_model">purchase.order.by.user</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
Loading…
Reference in New Issue