2016-05-31 1 views
0

私は見積もりの​​カスタムレポートを持っており、印刷(PDF生成)したい場合は、見積もりを「草案」から「送信済み」に移行したいと考えています。どうすればこれを達成できますか?印刷後に見積を「ドラフト」から「送信済み」に移行するにはどうすればよいですか?

レポートはRMLで前任者によって書かれました。状態を変更する書き込みメソッドを追加しようとしましたが、無駄になりました。

import time 
from openerp.report import report_sxw 

class customquote(report_sxw.rml_parse): 
     def __init__(self, cr, uid, name, context): 
      super(customquote, self).__init__(cr, uid, name, context=context) 
      self.localcontext.update({ 
       'time': time, 
      }) 
      sale_order = self.pool.get('sale.order') 
      order_id = sale_order.search(cr,uid,[('name','=',name)]) 
      order = sale_order.browse(cr,uid,order_id) 
      for record in order: 
       print record 
       record.write({'state': 'sent'}) 
       #Neither of the following worked at either... 
       #record.state = 'sent' 
       #record.signal_workflow('quotation_sent') 

report_sxw.report_sxw(
    'report.sale.order.customquote', 
    'sale.order', 
    'My_Quotation/report/customquote.rml', 
    parser=customquote, 
    header=False, 
    ) 

答えて

0

代わりにフォームページの追加ボタンを使用して回避策が見つかりました。注意 'sale.order.my_quotation'は以前に作成されたカスタムレポートです。

  1. openerp.osvインポートOSVからmy_sale.py

    、フィールド

    クラスmy_sale_order(osv.osv):

    _inherit = 'sale.order' 
    
    def print_quotation_custom(self, cr, uid, ids, context=None): 
        #Copied from /sale/sale.py 
        assert len(ids) == 1, 
        self.signal_workflow(cr, uid, ids, 'quotation_sent') 
        return self.pool['report'].get_action(cr, uid, ids, 'sale.order.my_quotation', context=context) 
    
  2. my_sale_view.xml

    012 '私の販売':
    <record id="view_order_form_custom" model="ir.ui.view"> 
        <field name="model">sale.order</field> 
        <field name="name">sale.order.form.inherit</field> 
        <field name="inherit_id" ref="sale.view_order_form"/> 
        <field name="arch" type="xml"> 
        <xpath expr="//form/header/button[@name='print_quotation']" position="replace"> 
          <button name="print_quotation_custom" string="Print" type="object" states="draft" class="oe_highlight" groups="base.group_user"/> 
        </xpath> 
        <xpath expr="//form/header/button[@name='print_quotation']" position="after"> 
          <button name="print_quotation_custom" string="Print" type="object" states="sent,progress,manual" groups="base.group_user"/> 
        </xpath> 
        </field> 
    </record> 
    

  3. のinitの.py

    輸入ioi_quotationはこの

  4. openerpの.py

    { '名前' を#added 、 'version': '1.0'、 'カテゴリ': 'Sales'、 'description': 'My custom sale module'、 'author': 'jeszy'、 'depends':['base'、 'sale' ']、 'データ':[' my_sale_view.xml ']、 'デモ':[]、 'インストール':真、 'AUTO_INSTALL':偽、

    }
関連する問題