openerp - Type error: argument 2 to map() must support iteration -


i getting error: type error: argument 2 map() must support iteration when trying save. view rendered correctly , calculations way want. when click on save, mentioned error. believe problem type of object passing write. can please suggest change should make below code fix issue?

below code:

class export_rebate(osv.osv):     _name = 'export.rebate'      def _cal_difference(self, cr, uid, ids, field_names, arg=none, context=none):         res = {}         item in self.browse(cr, uid, ids, context=context):             res[item.id] = item.rebate_amount or 0.0 - item.amount_received or 0.0         return res      def _get_quantity (self, cr, uid, ids, field_names, arg=none, context=none):         res = {}         line in self.browse(cr,uid,ids,context=context):             qty = 0.0             invoice = line.invoice_id             if invoice , invoice.invoice_line:                 invline in invoice.invoice_line:                      qty += invline.quantity                 res[line.id] = qty         return res             def onchange_invoice_id(self, cr, uid, ids, invoice_id):         print 'on_change called'         res = {}         if invoice_id:             inv = self.pool.get('account.invoice').browse(cr, uid, invoice_id)             res['date_invoice'] = inv.date_invoice or false             res['form_e_num'] = inv.form_e_num or false             res['form_e_date'] = inv.form_e_date or false                     res['invoice_line'] = [x.id x in inv.invoice_line or []]         return {'value': res}      _columns = {             'invoice_id': fields.many2one('account.invoice', 'invoice no.'),             'type': fields.char('type', size=64, readonly=true, select=true),             'state': fields.char('status', select=true, readonly=true),             'date_invoice': fields.related('invoice_id', 'date_invoice', string='invoice date', relation='account.invoice', type='date', readonly=true),                             'form_e_num': fields.related('invoice_id', 'form_e_num', string='form e no.', relation='account.invoice', type='char', readonly=true),             'form_e_date': fields.related('invoice_id', 'form_e_date', string='form e date', relation='account.invoice', type='date', readonly=true),             'invoice_line': fields.related('invoice_id', 'id', relation='account.invoice.line', type='one2many', readonly=true),             'quantity': fields.function(_get_quantity, type='float', digits=(16,2), string='quantity', store=true, readonly=true),              'rebate_file_num': fields.char('rebate file no.', size=64, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'claim_file_date': fields.date('claim file date', select=true, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'rebate_amount': fields.float('rebate amount', digits=(16,2), states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'rebate_rate': fields.float('rebate rate', digits=(16,2), states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'gd_num': fields.char('g.d. no.', size=64, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'gd_date': fields.date('g.d. date', select=true, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'prc_date': fields.date('prc date', select=true, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'claim_sbmt_date': fields.date('claim submission date', select=true, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),              'cheque_num': fields.char('cheque no.', size=64, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'cheque_date': fields.date('cheque date', select=true, states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'amount_received': fields.float('amount received', digits=(16,2), states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),                                             'net_amt_rcvd': fields.float('net amount received', digits=(16,2), states={'draft': [('readonly', false)], 'sent': [('readonly', false)]}),             'difference': fields.function(_cal_difference, type='float', digits=(16,2), string='difference', store=true, readonly=true)                             }     _default = {             'quantity': 0.00             }  export_rebate()  

i think problem in onchange_invoice_id method.

this 1 seems suspicious res['invoice_line'] = [x.id x in inv.invoice_line or []]. try after comment line.


Comments

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -