[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>
This commit is contained in:
committed by
Barad Mahendra
parent
40793fde23
commit
8438286478
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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')])]"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user