openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #06606
[Merge] lp:~openerp-dev/openobject-addons/trunk-bug-import_coda-ara into lp:openobject-addons
Ashvin Rathod (OpenERP) has proposed merging lp:~openerp-dev/openobject-addons/trunk-bug-import_coda-ara into lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-import_coda-ara/+merge/60606
Hello,
Fix: error occurs when import instead of coda file(txt)
Thanks,
ara
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-import_coda-ara/+merge/60606
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-bug-import_coda-ara.
=== modified file 'account_coda/wizard/account_coda_import.py'
--- account_coda/wizard/account_coda_import.py 2011-03-14 10:27:42 +0000
+++ account_coda/wizard/account_coda_import.py 2011-05-11 10:39:31 +0000
@@ -90,105 +90,108 @@
recordlist = base64.decodestring(codafile).split('\n')
recordlist.pop()
for line in recordlist:
- if line[0] == '0':
- # header data
-
- bank_statement["bank_statement_line"]={}
- bank_statement_lines = {}
- bank_statement['date'] = str2date(line[5:11])
- bank_statement['journal_id']=data.journal_id.id
- period_id = account_period_obj.search(cr, uid, [('date_start', '<=', time.strftime('%Y-%m-%d', time.strptime(bank_statement['date'], "%y/%m/%d"))), ('date_stop', '>=', time.strftime('%Y-%m-%d', time.strptime(bank_statement['date'], "%y/%m/%d")))])
- bank_statement['period_id'] = period_id and period_id[0] or False
- bank_statement['state']='draft'
- elif line[0] == '1':
- # old balance data
- bal_start = list2float(line[43:58])
- if line[42] == '1':
- bal_start = - bal_start
- bank_statement["balance_start"]= bal_start
- bank_statement["acc_number"]=line[5:17]
- bank_statement["acc_holder"]=line[64:90]
- bank_statement['name'] = journal_code + ' ' + str(line[2:5])
-
- elif line[0]=='2':
- # movement data record 2
- if line[1]=='1':
- # movement data record 2.1
- if bank_statement_lines.has_key(line[2:6]):
- continue
- st_line = {}
- st_line['extra_note'] = ''
- st_line['statement_id']=0
- st_line['ref'] = line[2:10]
- st_line['date'] = time.strftime('%Y-%m-%d', time.strptime(str2date(line[115:121]), "%y/%m/%d")),
- st_line_amt = list2float(line[32:47])
-
- if line[61]=='1':
- st_line['toreconcile'] = True
- st_line['name']=line[65:77]
- else:
- st_line['toreconcile'] = False
- st_line['name']=line[62:115]
-
- st_line['free_comm'] = st_line['name']
- st_line['val_date']=time.strftime('%Y-%m-%d', time.strptime(str2date(line[47:53]), "%y/%m/%d")),
- st_line['entry_date']=time.strftime('%Y-%m-%d', time.strptime(str2date(line[115:121]), "%y/%m/%d")),
- st_line['partner_id']=0
- if line[31] == '1':
- st_line_amt = - st_line_amt
- st_line['account_id'] = def_pay_acc
- else:
- st_line['account_id'] = def_rec_acc
- st_line['amount'] = st_line_amt
- bank_statement_lines[line[2:6]]=st_line
- bank_statement["bank_statement_line"]=bank_statement_lines
- elif line[1] == '2':
- st_line_name = line[2:6]
- bank_statement_lines[st_line_name].update({'account_id': data.awaiting_account.id})
-
- elif line[1] == '3':
- # movement data record 3.1
- st_line_name = line[2:6]
- st_line_partner_acc = str(line[10:47]).strip()
- cntry_number=line[10:47].strip()
- contry_name=line[47:125].strip()
- bank_ids = partner_bank_obj.search(cr, uid, [('acc_number', '=', st_line_partner_acc)])
- bank_statement_lines[st_line_name].update({'cntry_number': cntry_number, 'contry_name': contry_name})
- if bank_ids:
- bank = partner_bank_obj.browse(cr, uid, bank_ids[0], context=context)
- if line and bank.partner_id:
- bank_statement_lines[st_line_name].update({'partner_id': bank.partner_id.id})
- if bank_statement_lines[st_line_name]['amount'] < 0:
- bank_statement_lines[st_line_name].update({'account_id': bank.partner_id.property_account_payable.id})
- else:
- bank_statement_lines[st_line_name].update({'account_id': bank.partner_id.property_account_receivable.id})
- else:
- nb_err += 1
- err_log += _('The bank account %s is not defined for the partner %s.\n')%(cntry_number, contry_name)
+ try:
+ if line[0] == '0':
+ # header data
+
+ bank_statement["bank_statement_line"]={}
+ bank_statement_lines = {}
+ bank_statement['date'] = str2date(line[5:11])
+ bank_statement['journal_id']=data.journal_id.id
+ period_id = account_period_obj.search(cr, uid, [('date_start', '<=', time.strftime('%Y-%m-%d', time.strptime(bank_statement['date'], "%y/%m/%d"))), ('date_stop', '>=', time.strftime('%Y-%m-%d', time.strptime(bank_statement['date'], "%y/%m/%d")))])
+ bank_statement['period_id'] = period_id and period_id[0] or False
+ bank_statement['state']='draft'
+ elif line[0] == '1':
+ # old balance data
+ bal_start = list2float(line[43:58])
+ if line[42] == '1':
+ bal_start = - bal_start
+ bank_statement["balance_start"]= bal_start
+ bank_statement["acc_number"]=line[5:17]
+ bank_statement["acc_holder"]=line[64:90]
+ bank_statement['name'] = journal_code + ' ' + str(line[2:5])
+
+ elif line[0]=='2':
+ # movement data record 2
+ if line[1]=='1':
+ # movement data record 2.1
+ if bank_statement_lines.has_key(line[2:6]):
+ continue
+ st_line = {}
+ st_line['extra_note'] = ''
+ st_line['statement_id']=0
+ st_line['ref'] = line[2:10]
+ st_line['date'] = time.strftime('%Y-%m-%d', time.strptime(str2date(line[115:121]), "%y/%m/%d")),
+ st_line_amt = list2float(line[32:47])
+
+ if line[61]=='1':
+ st_line['toreconcile'] = True
+ st_line['name']=line[65:77]
+ else:
+ st_line['toreconcile'] = False
+ st_line['name']=line[62:115]
+
+ st_line['free_comm'] = st_line['name']
+ st_line['val_date']=time.strftime('%Y-%m-%d', time.strptime(str2date(line[47:53]), "%y/%m/%d")),
+ st_line['entry_date']=time.strftime('%Y-%m-%d', time.strptime(str2date(line[115:121]), "%y/%m/%d")),
+ st_line['partner_id']=0
+ if line[31] == '1':
+ st_line_amt = - st_line_amt
+ st_line['account_id'] = def_pay_acc
+ else:
+ st_line['account_id'] = def_rec_acc
+ st_line['amount'] = st_line_amt
+ bank_statement_lines[line[2:6]]=st_line
+ bank_statement["bank_statement_line"]=bank_statement_lines
+ elif line[1] == '2':
+ st_line_name = line[2:6]
bank_statement_lines[st_line_name].update({'account_id': data.awaiting_account.id})
- bank_statement["bank_statement_line"]=bank_statement_lines
- elif line[0]=='3':
- if line[1] == '1':
- st_line_name = line[2:6]
- bank_statement_lines[st_line_name]['extra_note'] += '\n' + line[40:113]
- elif line[1] == '2':
- st_line_name = line[2:6]
- bank_statement_lines[st_line_name]['extra_note'] += '\n' + line[10:115]
- elif line[1] == '3':
- st_line_name = line[2:6]
- bank_statement_lines[st_line_name]['extra_note'] += '\n' + line[10:100]
- elif line[0]=='8':
- # new balance record
- bal_end = list2float(line[42:57])
- if line[41] == '1':
- bal_end = - bal_end
- bank_statement["balance_end_real"]= bal_end
-
- elif line[0]=='9':
- # footer record
-
- bank_statements.append(bank_statement)
+ elif line[1] == '3':
+ # movement data record 3.1
+ st_line_name = line[2:6]
+ st_line_partner_acc = str(line[10:47]).strip()
+ cntry_number=line[10:47].strip()
+ contry_name=line[47:125].strip()
+ bank_ids = partner_bank_obj.search(cr, uid, [('acc_number', '=', st_line_partner_acc)])
+ bank_statement_lines[st_line_name].update({'cntry_number': cntry_number, 'contry_name': contry_name})
+ if bank_ids:
+ bank = partner_bank_obj.browse(cr, uid, bank_ids[0], context=context)
+ if line and bank.partner_id:
+ bank_statement_lines[st_line_name].update({'partner_id': bank.partner_id.id})
+ if bank_statement_lines[st_line_name]['amount'] < 0:
+ bank_statement_lines[st_line_name].update({'account_id': bank.partner_id.property_account_payable.id})
+ else:
+ bank_statement_lines[st_line_name].update({'account_id': bank.partner_id.property_account_receivable.id})
+ else:
+ nb_err += 1
+ err_log += _('The bank account %s is not defined for the partner %s.\n')%(cntry_number, contry_name)
+ bank_statement_lines[st_line_name].update({'account_id': data.awaiting_account.id})
+
+ bank_statement["bank_statement_line"]=bank_statement_lines
+ elif line[0]=='3':
+ if line[1] == '1':
+ st_line_name = line[2:6]
+ bank_statement_lines[st_line_name]['extra_note'] += '\n' + line[40:113]
+ elif line[1] == '2':
+ st_line_name = line[2:6]
+ bank_statement_lines[st_line_name]['extra_note'] += '\n' + line[10:115]
+ elif line[1] == '3':
+ st_line_name = line[2:6]
+ bank_statement_lines[st_line_name]['extra_note'] += '\n' + line[10:100]
+ elif line[0]=='8':
+ # new balance record
+ bal_end = list2float(line[42:57])
+ if line[41] == '1':
+ bal_end = - bal_end
+ bank_statement["balance_end_real"]= bal_end
+
+ elif line[0]=='9':
+ # footer record
+
+ bank_statements.append(bank_statement)
+ except:
+ raise osv.except_osv(_('Warning !'), _('Please select valid coda file to create bank statement'))
#end for
bkst_list=[]
for statement in bank_statements: