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:

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-web
Post to     : openerp-dev-web@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openerp-dev-web
More help   : https://help.launchpad.net/ListHelp

Reply via email to