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