invoice_obj.write(cr,uid,invoice_id,{'state':'open'})
invoice_datas = invoice_obj.browse(cr, uid, invoice_id)
move_id = invoice_datas.move_id.id
print"Single Invoice",move_id
date=datetime.datetime.now()
data = voucher_obj.onchange_partner_id(cr, uid, [],data_partner.id, invoice_datas.journal_id.id ,0.0, False, 'receipt', date, context)['value']
journal_ids = journal_obj.search(cr, uid, [('type','in',['cash','bank'])])
statement_vals = {
'reference': invoice_datas.number,
'journal_id': journal_ids[0],
'amount': invoice_datas.amount_total,
'date' : date,
'partner_id': data_partner.id,
'account_id': invoice_datas.account_id.id,
'type': 'receipt',
'company_id':1,
}
if data.get('payment_rate_currency_id'):
statement_vals['payment_rate_currency_id'] = data['payment_rate_currency_id']
if data.get('paid_amount_in_company_currency'):
statement_vals['paid_amount_in_company_currency'] = data['paid_amount_in_company_currency']
if data.get('writeoff_amount'):
statement_vals['writeoff_amount'] =data['writeoff_amount']
if data.get('pre_line'):
statement_vals['pre_line'] = data['pre_line']
if data.get('payment_rate'):
statement_vals['payment_rate'] = data['payment_rate']
statement_id = voucher_obj.create(cr, uid, statement_vals, context)
print'+++++++++++++++++++++',data.get('line_cr_ids')
for line_cr in data.get('line_cr_ids'):
line_cr.update({'voucher_id':statement_id})
if line_cr['name']==invoice_datas.number:
line_cr['amount']=line_cr['amount_original']
line_cr['reconcile']=True
line_cr_id=voucher_line_obj.create(cr,uid,line_cr)
for line_dr in data.get('line_dr_ids'):
line_dr.update({'voucher_id':statement_id})
line_dr_id=voucher_line_obj.create(cr,uid,line_dr)
actually it is in odoo 9 coding, i already done this , but it is in v8, so u can refer this,