diff options
| author | Nidhi Patel <nia@odoo.com> | 2020-02-14 13:23:48 +0000 |
|---|---|---|
| committer | Barad Mahendra <mba@openerp.com> | 2020-06-11 07:09:48 +0000 |
| commit | 8438286478e111b231e7c680e8262310a4c8bf43 (patch) | |
| tree | 700f5cbe1b865e1ff8d47bcbd7b61d8c61564dca | |
| parent | 40793fde23a64a651859f227864a7c0c914837d5 (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.xml | 2 | ||||
| -rw-r--r-- | addons/hr/data/hr_data.xml | 10 | ||||
| -rw-r--r-- | addons/hr/data/hr_demo.xml | 24 | ||||
| -rw-r--r-- | addons/hr_expense/data/hr_expense_demo.xml | 8 | ||||
| -rw-r--r-- | addons/hr_expense/models/hr_expense.py | 8 |
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, |
