Dear All,
I am using Odoo v11 and installed a Jasper Reports module. I am using it successfully and my reports designed in JasperStudio get generated from this module. However, I am trying to develop a small module to generate the reports using Jasper's .jrxml file from the python method. The error I am getting are as below -
ValueError: External ID not found in the system: fmcg_sales.report_sales_order_register
My .py file looks like -
class WizardSaleOrderRegister(models.TransientModel):
_name = 'sale.order.wizard'
_description = 'Sales Order Register Report Wizard Inputs'
date_start = fields.Date('Start Date', default=date.today())
date_end = fields.Date('End Date', default=date.today())
order_state = fields.Selection([
('draft', 'Quotation'),
('sent', 'Quotation Sent'),
('sale', 'Sales Order'),
('done', 'Locked'),
('cancel', 'Cancelled'),
], string='Status', copy=False, index=True, default='draft')
@api.multi
def print_sales_order_report(self):
d1 = datetime.strptime(self.date_start, "%Y-%m-%d").date()
d2 = datetime.strptime(self.date_end, "%Y-%m-%d").date()
date1 = datetime.combine(d1, datetime.min.time())
date2 = datetime.combine(d2, datetime.max.time())
ordrecs = self.env['sale.order'].search([('date_order', ">=", str(date1)), ('date_order', '<=', str(date2)), ('state', '=', self.order_state)]).ids
ordrec2 = self.env['sale.order'].browse(ordrecs)
return self.env.ref('fmcg_sales.report_sales_order_register').report_action(ordrec2)
Name of my Jasper Report .jrxml file is SalesOrderRegister.jrxml
My .xml file is as below -
<odoo>
<data>
<record id='sales_order_report_form_view' model='ir.ui.view'>
<field name="name">sales_order_report_form</field>
<field name="model">sale.order.wizard</field>
<field name="arch" type="xml">
<form name="print_sales_order_report_form" string="Sales Order Report" create="false" edit="false">
<script>
$(document).ready(function(){
$(".modal-header").hide();
$(".modal-footer").hide();
})
</script>
<header>
<button name="print_sales_order_report" string="Get Report" type="object" icon="gtk-print"/>
<button name="close_print_form" string="Close" type="object" icon="gtk-close"/>
</header>
<group>
<field name="date_start"/>
<field name="date_end"/>
<field name="order_state"/>
</group>
</form>
</field>
</record>
<report
id="report_sales_order_register"
model="sale.order"
string="Sales Order Register (Jasper)"
report_type="jasper-pdf"
name="fmcg_sales.report_sales_order_register"
file="fmcg_sales.report_sales_order_register"
menu="False"
/>
<record id="act_sales_order_report" model="ir.actions.act_window">
<field name="name">Sales Order Report</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">sale.order.wizard</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="context">{}</field>
<field name="target">new</field>
</record>
<menuitem id="menu_sales_order_report"
name="Sales Order Register"
action="act_sales_order_report"
parent="sale.menu_sale_report"/>
</data>
</odoo>
What I would like to know is what am I doing wrong here. Also, how to get the external id of my jasper report and most importantly, can I call the Jasper Report just like I call any other QWEB report from my python code.
Thanks in advance for all your help.
Regards,
Jayant.