2

amount仕訳入力 (アカウント移動フォーム) にフィールドがあり、金額を入力すると自動的に行を挿入する onChange イベントを定義する必要があります。しかし、どうすればよいかわかりません。

4

3 に答える 3

1

昨日、私はあなたの要求に似たことをしなければなりませんでした。購入にサロ注文 (m2o) フィールドがありました...on_change of sale_order 私は購入注文行を記入しなければなりませんでした...お役に立てば幸いです。

class purchase_order(osv.osv):
    _inherit = 'purchase.order'

    _columns = {
        'sale_order':fields.many2one('sale.order','Sale Order'),
        'purchase_type':
            fields.selection([
                ('order','Purchase Order'),
                ('job','Job Order')
                ],
            'Purchase Type',
            required=True,
            states={
                'confirmed':[('readonly',True)],
                'approved':[('readonly',True)],
                },
            select=True,
            help="Define type of purchase order.",
         ),
     }

def onchange_saleorder(self,cr,uid,ids,order,context=None):
    res={}
    lis=[]
    sorder_id=self.pool.get('sale.order').browse(cr,uid,order)
    for line in sorder_id.order_line:
        print "uom",line.product_id.uom_id.id
        res={'product_id':line.product_id.id,
             'name':line.product_id.name,
             'product_qty':1,
             'product_uom':line.product_id.uom_id.id,
             'price_unit':line.price_unit,
             'date_planned':time.strftime('%Y-%m-%d'),}
        lis.append(res)
    print "list is .........",lis
    res={'value':{'order_line':lis}} // here order_line is o2m field of purchase.
    return res
于 2012-09-25T05:25:22.417 に答える
0

エラー「0」が生成されることがあるので、このようなコードを作成する必要があります。上記の例の場合 lis.append((0,0,res))

于 2012-09-26T11:38:56.740 に答える
0

on_changeメソッドは、行の値で構成される辞書のリストを返す必要があります。

例えば:

res['value']['line_ids'] = [
    {
        'account_id': 1,
        'debit': 100,
    },
    {
        'account_id': 2,
        'credit': 100,
    }]

また、例としてaccount.voucher の recompute_voucher_linesメソッドを参照してください。

于 2012-09-16T13:40:37.060 に答える