[IMP]:mrp:Improved SQL report.(Production).
bzr revid: apa@tinyerp.com-20100408092329-dkoyfzi1v1c6m67w
This commit is contained in:
parent
b905f21203
commit
05749150d3
|
@ -30,14 +30,32 @@ class mrp_production_order(osv.osv):
|
|||
'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),
|
||||
'reference': fields.char('Reference', size=64, required=True),
|
||||
'origin': fields.char('Source Document', size=64),
|
||||
'nbr': fields.integer('# of Orders', readonly=True),
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type','<>','service')]),
|
||||
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True),
|
||||
'scheduled_date':fields.date('Scheduled Date'),
|
||||
'product_id': fields.many2one('product.product', 'Product', readonly=True, domain=[('type','<>','service')]),
|
||||
'product_qty': fields.float('Product Qty', readonly=True),
|
||||
'state': fields.selection([('draft','Draft'),
|
||||
('picking_except', 'Picking Exception'),
|
||||
('confirmed','Waiting Goods'),
|
||||
('ready','Ready to Produce'),
|
||||
('in_production','In Production'),
|
||||
('cancel','Cancelled'),
|
||||
('done','Done')],
|
||||
'State', readonly=True),
|
||||
'date_planned':fields.date('Scheduled Date'),
|
||||
'location_src_id': fields.many2one('stock.location', 'Raw Materials Location', required=True),
|
||||
'date_start': fields.datetime('Start Date',readonly=True),
|
||||
'date_finnished': fields.datetime('End Date',readonly=True),
|
||||
'location_dest_id': fields.many2one('stock.location', 'Finished Products Location', required=True),
|
||||
'company_id': fields.many2one('res.company','Company',readonly=True),
|
||||
'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)],readonly=True),
|
||||
'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null',readonly=True),
|
||||
'picking_id': fields.many2one('stock.picking', 'Picking list', readonly=True),
|
||||
'priority': fields.selection([('0','Not urgent'),
|
||||
('1','Normal'),
|
||||
('2','Urgent'),
|
||||
('3','Very Urgent')],
|
||||
'Priority',readonly=True),
|
||||
|
||||
|
||||
}
|
||||
|
@ -46,20 +64,46 @@ class mrp_production_order(osv.osv):
|
|||
cr.execute("""
|
||||
create or replace view mrp_production_order as (
|
||||
select
|
||||
min(c.id) as id,
|
||||
to_char(c.create_date, 'YYYY') as name,
|
||||
to_char(c.create_date, 'MM') as month,
|
||||
c.state,
|
||||
c.product_id,
|
||||
count(*) as nbr,
|
||||
to_date(to_char(c.date_planned, 'dd-MM-YYYY'),'dd-MM-YYYY') as scheduled_date,
|
||||
c.name as reference,
|
||||
c.origin,
|
||||
c.location_src_id,
|
||||
c.location_dest_id
|
||||
from
|
||||
mrp_production c
|
||||
group by to_char(c.create_date, 'YYYY'), to_char(c.create_date, 'MM'), c.state,c.product_id,to_date(to_char(c.date_planned, 'dd-MM-YYYY'),'dd-MM-YYYY'),c.name,c.location_src_id,c.location_dest_id,c.origin
|
||||
min(l.id) as id,
|
||||
to_char(s.create_date, 'YYYY') as name,
|
||||
to_char(s.create_date, 'MM') as month,
|
||||
l.product_id as product_id,
|
||||
sum(l.product_qty * u.factor) as product_qty,
|
||||
s.company_id as company_id,
|
||||
count(*) as nbr,
|
||||
s.location_src_id,
|
||||
s.location_dest_id,
|
||||
s.bom_id,
|
||||
s.routing_id,
|
||||
s.picking_id,
|
||||
s.date_start,
|
||||
s.date_finnished,
|
||||
s.date_planned,
|
||||
s.origin,
|
||||
s.priority,
|
||||
s.state
|
||||
from
|
||||
mrp_production_product_line l
|
||||
left join
|
||||
mrp_production s on (s.id=l.production_id)
|
||||
left join product_uom u on (u.id=l.product_uom)
|
||||
group by
|
||||
to_char(s.create_date, 'YYYY'),
|
||||
to_char(s.create_date, 'MM'),
|
||||
l.product_id,
|
||||
l.product_uom,
|
||||
s.bom_id,
|
||||
s.routing_id,
|
||||
s.picking_id,
|
||||
s.priority,
|
||||
s.location_src_id,
|
||||
s.location_dest_id,
|
||||
s.state,
|
||||
s.date_planned,
|
||||
s.origin,
|
||||
s.date_start,
|
||||
s.date_finnished,
|
||||
s.company_id
|
||||
)""")
|
||||
mrp_production_order()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -11,20 +11,24 @@
|
|||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Production">
|
||||
<field name="name" />
|
||||
<field name="month"/>
|
||||
<field name="product_id" />
|
||||
<field name="scheduled_date"/>
|
||||
<field name="reference" />
|
||||
<field name="date_planned"/>
|
||||
<field name="origin"/>
|
||||
<field name="bom_id" />
|
||||
<field name="product_id" />
|
||||
<field name="product_qty"/>
|
||||
<field name="nbr" string="#Production Orders" />
|
||||
<field name="location_src_id"/>
|
||||
<field name="location_dest_id" />
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="state"/>
|
||||
<field name="routing_id" invisible="1"/>
|
||||
<field name="picking_id" invisible="1"/>
|
||||
<field name="priority" invisible="1"/>
|
||||
<field name="name" invisible="1" />
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="location_src_id" invisible="1"/>
|
||||
<field name="location_dest_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_report_mrp_production_order_form" model="ir.ui.view">
|
||||
<!--record id="view_report_mrp_production_order_form" model="ir.ui.view">
|
||||
<field name="name">mrp.production.order.form</field>
|
||||
<field name="model">mrp.production.order</field>
|
||||
<field name="type">form</field>
|
||||
|
@ -38,7 +42,7 @@
|
|||
<field name="origin"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</record-->
|
||||
|
||||
<record id="view_report_mrp_production_order_graph" model="ir.ui.view">
|
||||
<field name="name">mrp.production.order.graph</field>
|
||||
|
@ -59,28 +63,48 @@
|
|||
<field name="arch" type="xml">
|
||||
<search string="Search">
|
||||
<group col="16" colspan="6">
|
||||
<filter string="This Year" icon="terp-hr" domain="[('name','=',time.localtime()[0])]" default="1" />
|
||||
<filter string="This Month" icon="terp-hr" domain="[('month','=',time.strftime('%%m'))]" default="1"/>
|
||||
<filter string="This Year" icon="terp-mrp" domain="[('name','=',time.localtime()[0])]" default="1" />
|
||||
<filter string="This Month" icon="terp-mrp" domain="[('month','=',time.strftime('%%m'))]" default="1"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Current" icon="terp-hr" domain="[('state','in',('open','draft'))]"/>
|
||||
<filter string="Scheduled Date" icon="terp-hr" domain="[('scheduled_date',=,time.strftime('%%m/%%d/%%Y'))]"/>
|
||||
<filter string="Current" icon="terp-mrp" domain="[('state','in',('open','draft'))]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="reference" />
|
||||
<field name="origin"/>
|
||||
<field name="date_planned"/>
|
||||
</group>
|
||||
|
||||
<newline/>
|
||||
<group expand="1" string="Extended options..." colspan="10" col="12">
|
||||
<filter icon="terp-mrp" string="Draft" domain="[('state','=','draft')]"/>
|
||||
<filter icon="terp-mrp" string="Picking Exception" domain="[('state','=','picking_except')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-mrp" string="Waiting Goods" domain="[('state','=','confirmed')]"/>
|
||||
<filter icon="terp-mrp" string="Ready to Produce" domain="[('state','=','ready')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-mrp" string="In Production" domain="[('state','=','in_production')]"/>
|
||||
<filter icon="terp-mrp" string="Done" domain="[('state','=','done')]"/>
|
||||
<filter icon="terp-mrp" string="Cancelled" domain="[('state','=','cancel')]"/>
|
||||
<newline/>
|
||||
<filter icon="terp-mrp" string="Not urgent" domain="[('priority','=','0')]"/>
|
||||
<filter icon="terp-mrp" string="Normal" domain="[('priority','=','1')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-mrp" string="Urgent" domain="[('priority','=','2')]"/>
|
||||
<filter icon="terp-mrp" string="Very Urgent" domain="[('priority','=','3')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_finnished"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By..." colspan="4" col="6">
|
||||
<filter string="Source Location" icon="terp-sale" domain="[]" context="{'group_by':'location_src_id'}"/>
|
||||
<filter string="Destination Location" icon="terp-sale" domain="[]" context="{'group_by':'location_dest_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="State" icon="terp-sale" domain="[]" context="{'group_by':'state'}"/>
|
||||
<filter string="Product" icon="terp-sale" domain="[]" context="{'group_by':'product_id'}"/>
|
||||
<filter string="Source Location" icon="terp-mrp" context="{'group_by':'location_src_id'}"/>
|
||||
<filter string="Destination Location" icon="terp-mrp" context="{'group_by':'location_dest_id'}"/>
|
||||
<filter string="Picking" icon="terp-mrp" context="{'group_by':'picking_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Month" icon="terp-sale" domain="[]" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-sale" domain="[]" context="{'group_by':'name'}"/>
|
||||
|
||||
|
||||
<filter string="Routing" icon="terp-mrp" context="{'group_by':'routing_id'}"/>
|
||||
<filter string="Product" icon="terp-mrp" context="{'group_by':'product_id'}"/>
|
||||
<filter string="State" icon="terp-mrp" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="BOM" icon="terp-mrp" context="{'group_by':'bom_id'}"/>
|
||||
<filter string="Month" icon="terp-mrp" context="{'group_by':'month'}"/>
|
||||
<filter string="Year" icon="terp-mrp" context="{'group_by':'name'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
|
Loading…
Reference in New Issue