summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNidhi Patel <nia@odoo.com>2020-02-14 13:23:48 +0000
committerBarad Mahendra <mba@openerp.com>2020-06-11 07:09:48 +0000
commit8438286478e111b231e7c680e8262310a4c8bf43 (patch)
tree700f5cbe1b865e1ff8d47bcbd7b61d8c61564dca
parent40793fde23a64a651859f227864a7c0c914837d5 (diff)
[IMP] account,hr(_expense): Employee private address should be 'private' instead of 'contact'
Purpose of this task is,lots of business flows can be crashed if the field Private Address(address_home_id) is a private address instead of a regular contact. so in this commit,we change the demo data for employee and set the private type address on employee for private address and also fix the flows on which errors could occur. Currently billing administrator does not have right for private address and while creating payment from expense it was going to set the customer from the employee's private address on payment so give the private address right to the billing adminnistrator. Also chaned admin/demo user's private address as 'private' instead of regular contact. and on hr_expense use the Sudo while accessing the home address this method is used from payslip too. TaskID:2170016 closes odoo/odoo#46628 Closes: #46628 Related: odoo/enterprise#8924 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
-rw-r--r--addons/account/security/account_security.xml2
-rw-r--r--addons/hr/data/hr_data.xml10
-rw-r--r--addons/hr/data/hr_demo.xml24
-rw-r--r--addons/hr_expense/data/hr_expense_demo.xml8
-rw-r--r--addons/hr_expense/models/hr_expense.py8
5 files changed, 38 insertions, 14 deletions
diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml
index 8a55998f811..fd9b95655b7 100644
--- a/addons/account/security/account_security.xml
+++ b/addons/account/security/account_security.xml
@@ -40,7 +40,7 @@
<record id="group_account_manager" model="res.groups">
<field name="name">Billing Administrator</field>
<field name="category_id" ref="base.module_category_accounting_accounting"/>
- <field name="implied_ids" eval="[(4, ref('group_account_invoice'))]"/>
+ <field name="implied_ids" eval="[(4, ref('group_account_invoice')),(4, ref('base.group_private_addresses'))]"/>
</record>
<record id="base.user_admin" model="res.users">
diff --git a/addons/hr/data/hr_data.xml b/addons/hr/data/hr_data.xml
index 2e7fca012b7..da3e2ffa34a 100644
--- a/addons/hr/data/hr_data.xml
+++ b/addons/hr/data/hr_data.xml
@@ -10,11 +10,19 @@
<field name="name">Sales</field>
</record>
+ <record id="res_partner_admin_private_address" model="res.partner">
+ <field name="name">Administrator</field>
+ <field name="company_id" ref="base.main_company"/>
+ <field name="email">admin@example.com</field>
+ <field name="image_1920" type="base64" file="base/static/img/avatar_grey.png"/>
+ <field name="type">private</field>
+ </record>
+
<record id="employee_admin" model="hr.employee">
<field name="name" eval="obj(ref('base.partner_admin')).name" model="res.partner"/>
<field name="user_id" ref="base.user_admin"/>
<field name="address_id" ref="base.partner_admin"/>
- <field name="address_home_id" ref="base.partner_admin"/>
+ <field name="address_home_id" ref="res_partner_admin_private_address"/>
<field name="image_1920" eval="obj(ref('base.partner_admin')).image_1920" model="res.partner"/>
</record>
diff --git a/addons/hr/data/hr_demo.xml b/addons/hr/data/hr_demo.xml
index 4c2270834f6..0860970a3f6 100644
--- a/addons/hr/data/hr_demo.xml
+++ b/addons/hr/data/hr_demo.xml
@@ -133,6 +133,29 @@ If you have development competencies, we can propose you specific traineeships</
<field name="color" eval="4"/>
</record>
+ <!-- Address -->
+
+ <record id="hr.res_partner_admin_private_address" model="res.partner">
+ <field name="name">Mitchell Admin</field>
+ <field name="street">215 Vine St</field>
+ <field name="city">Scranton</field>
+ <field name="zip">18503</field>
+ <field name="country_id" ref="base.us"/>
+ <field name='state_id' ref="base.state_us_39"/>
+ <field name="phone">+1 555-555-5555</field>
+ <field name="email">admin@yourcompany.example.com</field>
+ </record>
+ <record id="res_partner_demo_private_address" model="res.partner">
+ <field name="name">Mark Demo</field>
+ <field name="street">361-7936 Feugiat St.</field>
+ <field name="zip">58521</field>
+ <field name="city">Williston</field>
+ <field name="country_id" ref="base.us"/>
+ <field name="phone">+1 555-555-5757</field>
+ <field name="email">demo@yourcompany.example.com</field>
+ <field name="type">private</field>
+ </record>
+
<!--Employees-->
<record id="employee_admin" model="hr.employee">
@@ -215,6 +238,7 @@ If you have development competencies, we can propose you specific traineeships</
<field name="user_id" ref="base.user_demo"/>
<field name="department_id" ref="dep_rd"/>
<field name="parent_id" ref="employee_admin"/>
+ <field name="address_home_id" ref="res_partner_demo_private_address"/>
<field name="job_id" ref="hr.job_developer"/>
<field name="job_title">Experienced Developer</field>
<field name="category_ids" eval="[(6, 0, [ref('employee_category_4')])]"/>
diff --git a/addons/hr_expense/data/hr_expense_demo.xml b/addons/hr_expense/data/hr_expense_demo.xml
index fab19ada1e3..2841c7f77de 100644
--- a/addons/hr_expense/data/hr_expense_demo.xml
+++ b/addons/hr_expense/data/hr_expense_demo.xml
@@ -24,14 +24,6 @@
<field name="type">private</field>
</record>
- <record id="hr.employee_admin" model="hr.employee">
- <field name="address_home_id" ref="res_partner_address_fp"/>
- </record>
-
- <record id="hr.employee_qdp" model="hr.employee">
- <field name="address_home_id" ref="res_partner_address_fp"/>
- </record>
-
<record id="hr.employee_fme" model="hr.employee">
<field name="address_home_id" ref="res_partner_address_fp"/>
</record>
diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index f1dd1607e55..334535eb993 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -383,9 +383,9 @@ class HrExpense(models.Model):
raise UserError(_("No credit account found for the %s journal, please configure one.") % (self.sheet_id.bank_journal_id.name))
account_dest = self.sheet_id.bank_journal_id.default_credit_account_id.id
else:
- if not self.employee_id.address_home_id:
+ if not self.employee_id.sudo().address_home_id:
raise UserError(_("No Home Address found for the employee %s, please configure one.") % (self.employee_id.name))
- partner = self.employee_id.address_home_id.with_company(self.company_id)
+ partner = self.employee_id.sudo().address_home_id.with_company(self.company_id)
account_dest = partner.property_account_payable_id.id or partner.parent_id.property_account_payable_id.id
return account_dest
@@ -404,7 +404,7 @@ class HrExpense(models.Model):
taxes = expense.tax_ids.with_context(round=True).compute_all(expense.unit_amount, expense.currency_id, expense.quantity, expense.product_id)
total_amount = 0.0
total_amount_currency = 0.0
- partner_id = expense.employee_id.address_home_id.commercial_partner_id.id
+ partner_id = expense.employee_id.sudo().address_home_id.commercial_partner_id.id
# source move line
amount = taxes['total_excluded']
@@ -509,7 +509,7 @@ class HrExpense(models.Model):
payment = self.env['account.payment'].create({
'payment_method_id': payment_methods and payment_methods[0].id or False,
'payment_type': 'outbound' if total_amount < 0 else 'inbound',
- 'partner_id': expense.employee_id.address_home_id.commercial_partner_id.id,
+ 'partner_id': expense.employee_id.sudo().address_home_id.commercial_partner_id.id,
'partner_type': 'supplier',
'journal_id': journal.id,
'date': expense.date,