This question has been flagged

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.

Avatar
Discard