Activity log for bug #1179762

Date Who What changed Old value New value Message
2013-05-14 02:44:59 David Arnold bug added bug
2013-05-14 02:47:28 David Arnold description Apparently, if you try to process a voucher in a bank statement which does not have a partner set, there will be an error (see below). Creating a voucher without a partner is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last): File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch response["result"] = method(self, **self.params) File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button action = self._call_kw(req, model, method, args, {}) File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw return getattr(req.session.model(model), method)(*args, **kwargs) File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw) File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method result = self.session.send(self.service_name, method, *args) File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last): File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send return openerp.netsvc.dispatch_rpc(service_name, method, args) File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc result = ExportService.getService(service_name).dispatch(method, params) File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch res = fn(db, uid, *params) File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw return self.execute(db, uid, obj, method, *args, **kw or {}) File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper return f(self, dbname, *args, **kwargs) File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute res = self.execute_cr(cr, uid, obj, method, *args, **kw) File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr return getattr(object, method)(cr, uid, *args, **kw) File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context) File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context) File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr) File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate res2 = instance.validate(cr, id, ident, signal) File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate workitem.process(cr, witem, ident, signal, force_running, stack=stack) File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack) File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test _join_test(cr, t[0], t[1], ident, stack) File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test create(cr,[activity], inst_id, ident, stack) File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create process(cr, res, ident, stack=stack) File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process result = _execute(cr, workitem, activity, ident, stack) File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute returned_action = wkf_expr.execute(cr, ident, workitem, activity) File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute return _eval_expr(cr, ident, workitem, activity['action']) File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr ret = eval(line, env, nocopy=True) File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict) File "", line 1, in <module> File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy return attr(self._cr, self._uid, [self._id], *args, **kwargs) File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher self.action_move_line_create(cr, uid, ids, context=context) File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context) File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id' Apparently, if you try to process a voucher in a bank statement which does not have a partner set, there will be an error (see below). "Creating a voucher without a partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id'
2013-05-14 02:48:05 David Arnold description Apparently, if you try to process a voucher in a bank statement which does not have a partner set, there will be an error (see below). "Creating a voucher without a partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id' Apparently, if you try to process a voucher in a bank statement which does not have a partner set, there will be an error (see below). "Creating-a-voucher-without-a-partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id'
2013-05-14 02:51:12 David Arnold bug task added account-banking
2013-05-14 02:51:50 David Arnold affects openobject-addons openerp-account-voucher-group
2013-05-14 02:53:48 David Arnold description Apparently, if you try to process a voucher in a bank statement which does not have a partner set, there will be an error (see below). "Creating-a-voucher-without-a-partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id' Apparently, if you try to process a voucher that was imported in a bank statement reconciliation which does not have a partner set, there will be an error (see below). "Creating-a-voucher-without-a-partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id'
2013-05-14 02:55:10 David Arnold description Apparently, if you try to process a voucher that was imported in a bank statement reconciliation which does not have a partner set, there will be an error (see below). "Creating-a-voucher-without-a-partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id' Apparently, if you try to process a voucher that was imported in a bank statement reconciliation which does not have a partner set, there will be an error (see below). "Creating-a-voucher-without-a-partner" is not blocked in the voucher module, though. Maybe a partner could just be made mandatory, also in the GUI. Reproduction: (please can anyone outside my system confirm?) 1. create a voucher without a partner 2. import it to the bank statment 3. validate the bank statment openerp 7.0 - all up to date Client Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/http.py", line 195, in dispatch     response["result"] = method(self, **self.params)   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1083, in call_button     action = self._call_kw(req, model, method, args, {})   File "/opt/openerp/server/openerp/addons/web/controllers/main.py", line 1071, in _call_kw     return getattr(req.session.model(model), method)(*args, **kwargs)   File "/opt/openerp/server/openerp/addons/web/session.py", line 43, in proxy     result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)   File "/opt/openerp/server/openerp/addons/web/session.py", line 31, in proxy_method     result = self.session.send(self.service_name, method, *args)   File "/opt/openerp/server/openerp/addons/web/session.py", line 104, in send     raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info) Server Traceback (most recent call last):   File "/opt/openerp/server/openerp/addons/web/session.py", line 90, in send     return openerp.netsvc.dispatch_rpc(service_name, method, args)   File "/opt/openerp/server/openerp/netsvc.py", line 295, in dispatch_rpc     result = ExportService.getService(service_name).dispatch(method, params)   File "/opt/openerp/server/openerp/service/web_services.py", line 614, in dispatch     res = fn(db, uid, *params)   File "/opt/openerp/server/openerp/osv/osv.py", line 169, in execute_kw     return self.execute(db, uid, obj, method, *args, **kw or {})   File "/opt/openerp/server/openerp/osv/osv.py", line 123, in wrapper     return f(self, dbname, *args, **kwargs)   File "/opt/openerp/server/openerp/osv/osv.py", line 179, in execute     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File "/opt/openerp/server/openerp/osv/osv.py", line 166, in execute_cr     return getattr(object, method)(cr, uid, *args, **kw)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1497, in button_confirm_bank     return super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account/account_bank_statement.py", line 427, in button_confirm_bank     self.create_move_from_st_line(cr, uid, st_line.id, company_currency_id, st_line_number, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1519, in create_move_from_st_line     wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)   File "/opt/openerp/server/openerp/workflow/wkf_service.py", line 119, in trg_validate     res2 = instance.validate(cr, id, ident, signal)   File "/opt/openerp/server/openerp/workflow/instance.py", line 43, in validate     workitem.process(cr, witem, ident, signal, force_running, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 60, in process     ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 175, in _split_test     _join_test(cr, t[0], t[1], ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 183, in _join_test     create(cr,[activity], inst_id, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 40, in create     process(cr, res, ident, stack=stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 52, in process     result = _execute(cr, workitem, activity, ident, stack)   File "/opt/openerp/server/openerp/workflow/workitem.py", line 106, in _execute     returned_action = wkf_expr.execute(cr, ident, workitem, activity)   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 67, in execute     return _eval_expr(cr, ident, workitem, activity['action'])   File "/opt/openerp/server/openerp/workflow/wkf_expr.py", line 57, in _eval_expr     ret = eval(line, env, nocopy=True)   File "/opt/openerp/server/openerp/tools/safe_eval.py", line 241, in safe_eval     return eval(test_expr(expr, _SAFE_OPCODES, mode=mode), globals_dict, locals_dict)   File "", line 1, in <module>   File "/opt/openerp/server/openerp/osv/orm.py", line 374, in function_proxy     return attr(self._cr, self._uid, [self._id], *args, **kwargs)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 830, in proforma_voucher     self.action_move_line_create(cr, uid, ids, context=context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1303, in action_move_line_create     ml_writeoff = self.writeoff_move_line_get(cr, uid, voucher.id, line_total, move_id, name, company_currency, current_currency, context)   File "/opt/openerp/server/openerp/addons/account_voucher/account_voucher.py", line 1230, in writeoff_move_line_get     account_id = voucher_brw.partner_id.property_account_payable.id AttributeError: 'NoneType' object has no attribute 'id'
2013-05-14 07:23:42 Stefan Rijnhart (Opener) affects account-banking openobject-addons
2013-05-17 07:08:07 Amit Bhavsar (Open ERP) openobject-addons: status New Incomplete
2013-05-17 12:30:42 David Arnold attachment added image.png https://bugs.launchpad.net/bugs/1179762/+attachment/3679287/+files/image.png
2013-05-17 12:30:42 David Arnold attachment added image.png https://bugs.launchpad.net/bugs/1179762/+attachment/3679288/+files/image.png
2013-05-20 06:07:25 Amit Bhavsar (Open ERP) summary bank reconciliation error with voucher without partner [Trunk] bank reconciliation error with voucher without partner
2013-05-20 06:14:09 Amit Bhavsar (Open ERP) attachment added Step for Reproduce https://bugs.launchpad.net/openobject-addons/+bug/1179762/+attachment/3681672/+files/bank%20reconciliation%20error.ogv
2013-05-20 06:14:29 Amit Bhavsar (Open ERP) openobject-addons: status Incomplete Confirmed
2013-05-20 06:14:34 Amit Bhavsar (Open ERP) openobject-addons: importance Undecided Medium
2013-05-20 06:14:48 Amit Bhavsar (Open ERP) openobject-addons: assignee OpenERP R&D Addons Team 3 (openerp-dev-addons3)
2013-06-10 10:38:07 Launchpad Janitor branch linked lp:~openerp-dev/openobject-addons/trunk-bug-1179762-ishwar
2013-06-10 13:10:22 Ishwar Malvi(OpenERP) openobject-addons: status Confirmed In Progress
2013-06-10 13:12:22 Ishwar Malvi(OpenERP) openobject-addons: status In Progress Opinion
2013-06-10 13:12:27 Ishwar Malvi(OpenERP) openobject-addons: status Opinion Fix Committed