在乘法SO中改变状态

问题描述 投票:0回答:1

我制作了这个报告,它是从SO树视图中的一个动作调用的。所以我可以选择一些报告并打印出来。

问题是我想改变我选择的销售订单中的状态并打印出报告。国家应该从“草案”改为“已发送”。我怎样才能做到这一点?

<data>

    <report 
        id="report_het_sale_order"
        string="Het Sale Order Pdf"
        model="sale.order"
        name="het.het_sale_order"
        rml="config_het/report/het_sale_order.ods"
        menu="True"
    />

    <record model="ir.actions.report.xml" id="report_hetl_sale_order">
        <field name="report_type">aeroo</field>
        <field name="parser_loc">config_het/report/het_sale_order.pyc</field>
        <field name="tml_Source">file</field>
        <field name="parser_state">loc</field>
        <field name="out_format" ref="report_aeroo.report_mimetypes_pdf_odt"/>
        <field name="in_format">oo-ods</field>
        <field name="auto" eval="True" />
    </record>
odoo odoo-8 odoo-9
1个回答
2
投票

您可以通过修改AbstractModel来完成

例如:

<report 
            id="agedpartnerbalance_template"
            string="Aged Partner Template"
            model="account.move" 
            report_type="qweb-pdf"
            file="account.report_agedpartnerbalance" 
            name="account.report_agedpartnerbalance"
        />


    class ReportAgedPartnerBalance(models.AbstractModel):

        _name = 'report.account.report_agedpartnerbalance'


        @api.model
        def render_html(self, docids, data=None):
            *****
            Your Logic
            docs = self.env[model].browse(self.env.context.get('active_id'))
            for doc in docs:
                doc.state = 'sent'
            *****
            docargs = {
                'doc_ids': self.ids,
                'doc_model': model,
                'data': data['form'],
                'docs': docs,
                'time': time,
                'get_partner_lines': movelines,
                'get_direction': total,
            }
            return self.env['report'].render('account.report_agedpartnerbalance', docargs)
© www.soinside.com 2019 - 2024. All rights reserved.