diff --git a/odoo/local-src/specific_expense/README.rst b/odoo/local-src/specific_expense/README.rst
new file mode 100644
index 00000000000..4827b03c9d1
--- /dev/null
+++ b/odoo/local-src/specific_expense/README.rst
@@ -0,0 +1,6 @@
+============================
+Specific Expense for Roctool
+============================
+
+In odoo 10, the expense accounting uses the hr.employee address_home_id to find
+some information. We want to facilitate this for roctool
diff --git a/odoo/local-src/specific_expense/__init__.py b/odoo/local-src/specific_expense/__init__.py
new file mode 100644
index 00000000000..955b6c58409
--- /dev/null
+++ b/odoo/local-src/specific_expense/__init__.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Camptocamp SA
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import models
diff --git a/odoo/local-src/specific_expense/__manifest__.py b/odoo/local-src/specific_expense/__manifest__.py
new file mode 100644
index 00000000000..5fd3ce68047
--- /dev/null
+++ b/odoo/local-src/specific_expense/__manifest__.py
@@ -0,0 +1,17 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Camptocamp SA
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+{
+ "name": "RocTool specific expense",
+ "version": "10.0.1.0.0",
+ "depends": ['hr',
+ ],
+ "author": "Camptocamp",
+ "website": "http://www.camptocamp.com",
+ "license": "AGPL-3",
+ "category": "Expense",
+ "data": ['data/res_partner_category.xml',
+ 'views/employee_views.xml',
+ ],
+ 'installable': True,
+}
diff --git a/odoo/local-src/specific_expense/data/res_partner_category.xml b/odoo/local-src/specific_expense/data/res_partner_category.xml
new file mode 100644
index 00000000000..e4d84d2929a
--- /dev/null
+++ b/odoo/local-src/specific_expense/data/res_partner_category.xml
@@ -0,0 +1,8 @@
+
+
+
+
+ employee home
+
+
+
diff --git a/odoo/local-src/specific_expense/models/__init__.py b/odoo/local-src/specific_expense/models/__init__.py
new file mode 100644
index 00000000000..ddd5ee3b148
--- /dev/null
+++ b/odoo/local-src/specific_expense/models/__init__.py
@@ -0,0 +1,5 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Camptocamp SA
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from . import hr_employee
diff --git a/odoo/local-src/specific_expense/models/hr_employee.py b/odoo/local-src/specific_expense/models/hr_employee.py
new file mode 100644
index 00000000000..c2f56e0156b
--- /dev/null
+++ b/odoo/local-src/specific_expense/models/hr_employee.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Camptocamp SA
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models, fields, api
+
+
+class Employee(models.Model):
+ _inherit = 'hr.employee'
+
+ expense_refund_account_id = fields.Many2one(
+ 'account.account',
+ string='Expense Refund Account',
+ related='address_home_id.property_account_payable_id',
+ store=False,
+ readonly=False,
+ )
+
+ @api.model
+ def create(self, vals):
+ if vals['address_home_id']:
+ return super(Employee, self).create(vals)
+ country_id = None
+ if not vals['country_id']:
+ Company = self.env['res.company']
+ country_id = Company.browse(vals['company_id']).country_id.id
+ Partner = self.env['res.partner']
+ category_id = self.env.ref('specific_expense.employee_home').id
+ vals_address = {
+ 'name': vals.get('name'),
+ 'supplier': True,
+ 'customer': False,
+ 'country_id': country_id if country_id else vals.get('country_id'),
+ 'category_id': [(4, category_id)],
+ }
+ partner = Partner.create(vals_address)
+ vals['address_home_id'] = partner.id
+ return super(Employee, self).create(vals)
diff --git a/odoo/local-src/specific_expense/views/employee_views.xml b/odoo/local-src/specific_expense/views/employee_views.xml
new file mode 100644
index 00000000000..fa5892a485e
--- /dev/null
+++ b/odoo/local-src/specific_expense/views/employee_views.xml
@@ -0,0 +1,17 @@
+
+
+
+
+ hr.employee.form.expense
+ hr.employee
+
+
+
+
+
+
+
+
+
+
+