You can override the default report like below
1) Create a xml file in your module custom_report.xml with following content
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report auto="False" id="sale.report_sale_order" model="sale.order" name="sale.order"
rml="your_module/report/sale_order.rml" string="New Quotation / Order"
usage="default"/>
</data>
</openerp>
2) Copy your custom rml file to your_module/report/sale_order.rml
3) Create your custom parser your_module/report/sale_order.py
import time
from sale.report import sale_order
from openerp.report import report_sxw
class order(sale_order.order):
def __init__(self, cr, uid, name, context):
super(order, self).__init__(cr, uid, name, context=context)
from netsvc import Service
del Service._services['report.sale.order']
report_sxw.report_sxw('report.sale.order', 'sale.order', 'your_module/report/sale_order.rml', parser=order, header='external')
4) create your_module/report/__init__.py
import sale_order
5)update your __openerp__.py file
'data': ['custom_report.xml',]
6) Restart your server and update your module