Ujjvala Collins (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-bug-796363-uco into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
Related bugs:
Bug #796363 in OpenERP Addons: "hr_expense: invoice ignores employee company"
https://bugs.launchpad.net/openobject-addons/+bug/796363
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-796363-uco/+merge/64680
[FIX] hr_expense:
--------------------------
* Fixed problem of company id on invoices created from expense. (lp:796363)
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-796363-uco/+merge/64680
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-bug-796363-uco.
=== modified file 'hr_expense/hr_expense.py'
--- hr_expense/hr_expense.py 2011-05-02 18:46:43 +0000
+++ hr_expense/hr_expense.py 2011-06-15 13:19:29 +0000
@@ -24,6 +24,7 @@
from osv import fields, osv
from tools.translate import _
import decimal_precision as dp
+import netsvc
def _employee_get(obj, cr, uid, context=None):
if context is None:
@@ -54,6 +55,12 @@
else:
return self.pool.get('res.currency').search(cr, uid, [('rate','=',1.0)], context=context)[0]
+ def _company_get(obj, cr, uid, context=None):
+ employee_id = _employee_get(obj, cr, uid, context)
+ if employee_id:
+ return obj.pool.get('hr.employee').read(cr, uid, [employee_id], ['company_id'], context)[0]['company_id']
+ return False
+
_name = "hr.expense.expense"
_description = "Expense"
_columns = {
@@ -91,14 +98,18 @@
'employee_id': _employee_get,
'user_id': lambda cr, uid, id, c={}: id,
'currency_id': _get_currency,
- 'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
+ 'company_id': _company_get,
}
def onchange_employee_id(self, cr, uid, ids, employee_id, context=None):
+ emp_obj = self.pool.get('hr.employee')
department_id = False
+ company_id = False
if employee_id:
- department_id = self.pool.get('hr.employee').browse(cr, uid, employee_id, context=context).department_id.id or False
- return {'value':{'department_id':department_id}}
+ employee = emp_obj.browse(cr, uid, employee_id, context=context)
+ department_id = employee.department_id.id or False
+ company_id = employee.company_id.id or False
+ return {'value':{'department_id':department_id, 'company_id':company_id}}
def expense_confirm(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {
@@ -153,6 +164,7 @@
analytic_journal_obj = self.pool.get('account.analytic.journal')
account_journal = self.pool.get('account.journal')
for exp in self.browse(cr, uid, ids):
+ company_id = exp.company_id.id
lines = []
for l in exp.line_ids:
tax_id = []
@@ -162,10 +174,9 @@
acc = l.product_id.categ_id.property_account_expense_categ
tax_id = [x.id for x in l.product_id.supplier_taxes_id]
else:
- acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category')
+ acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company_id})
if not acc:
raise osv.except_osv(_('Error !'), _('Please configure Default Expense account for Product purchase, `property_account_expense_categ`'))
-
lines.append((0, False, {
'name': l.name,
'account_id': acc.id,
@@ -190,6 +201,7 @@
'partner_id': exp.employee_id.address_home_id.partner_id.id,
'address_invoice_id': exp.employee_id.address_home_id.id,
'address_contact_id': exp.employee_id.address_home_id.id,
+ 'company_id': company_id,
'origin': exp.name,
'invoice_line': lines,
'currency_id': exp.currency_id.id,
@@ -205,7 +217,7 @@
inv['journal_id']=exp.journal_id.id
journal = exp.journal_id
else:
- journal_id = invoice_obj._get_journal(cr, uid, context={'type': 'in_invoice'})
+ journal_id = invoice_obj._get_journal(cr, uid, context={'type': 'in_invoice', 'company_id': company_id})
if journal_id:
inv['journal_id'] = journal_id
journal = account_journal.browse(cr, uid, journal_id)
@@ -248,7 +260,7 @@
'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Account')),
'unit_quantity': fields.float('Quantities' ),
'product_id': fields.many2one('product.product', 'Product', domain=[('hr_expense_ok','=',True)]),
- 'uom_id': fields.many2one('product.uom', 'UoM' ),
+ 'uom_id': fields.many2one('product.uom', 'UoM'),
'description': fields.text('Description'),
'analytic_account': fields.many2one('account.analytic.account','Analytic account'),
'ref': fields.char('Reference', size=32),
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp