From 8a0142c5e2dad4df042cfa3f026f5fd44947cc3d Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 1 Oct 2018 08:24:15 -0700 Subject: [PATCH] Initial commit of `hr_expense_recruitment` for 11.0 --- hr_expense_recruitment/__init__.py | 1 + hr_expense_recruitment/__manifest__.py | 21 ++++++++++++++++ hr_expense_recruitment/models/__init__.py | 2 ++ .../models/hr_expense_job.py | 7 ++++++ hr_expense_recruitment/models/hr_job.py | 18 ++++++++++++++ hr_expense_recruitment/tests/__init__.py | 1 + hr_expense_recruitment/tests/test_expenses.py | 16 +++++++++++++ .../views/hr_expense_views.xml | 24 +++++++++++++++++++ hr_expense_recruitment/views/hr_job_views.xml | 19 +++++++++++++++ 9 files changed, 109 insertions(+) create mode 100644 hr_expense_recruitment/__init__.py create mode 100644 hr_expense_recruitment/__manifest__.py create mode 100644 hr_expense_recruitment/models/__init__.py create mode 100644 hr_expense_recruitment/models/hr_expense_job.py create mode 100644 hr_expense_recruitment/models/hr_job.py create mode 100644 hr_expense_recruitment/tests/__init__.py create mode 100644 hr_expense_recruitment/tests/test_expenses.py create mode 100644 hr_expense_recruitment/views/hr_expense_views.xml create mode 100644 hr_expense_recruitment/views/hr_job_views.xml diff --git a/hr_expense_recruitment/__init__.py b/hr_expense_recruitment/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/hr_expense_recruitment/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/hr_expense_recruitment/__manifest__.py b/hr_expense_recruitment/__manifest__.py new file mode 100644 index 00000000..e1401df5 --- /dev/null +++ b/hr_expense_recruitment/__manifest__.py @@ -0,0 +1,21 @@ +{ + 'name': 'HR Expense Recruitment', + 'version': '11.0.1.0.0', + 'author': 'Hibou Corp. ', + 'category': 'Human Resources', + 'summary': 'Assign Recruitment to expenses for reporting.', + 'description': """ +Assign Recruitment to expenses for reporting. +""", + 'website': 'https://hibou.io/', + 'depends': [ + 'hr_expense', + 'hr_recruitment', + ], + 'data': [ + 'views/hr_expense_views.xml', + 'views/hr_job_views.xml' + ], + 'installable': True, + 'auto_install': False, +} diff --git a/hr_expense_recruitment/models/__init__.py b/hr_expense_recruitment/models/__init__.py new file mode 100644 index 00000000..cdc77a6e --- /dev/null +++ b/hr_expense_recruitment/models/__init__.py @@ -0,0 +1,2 @@ +from . import hr_expense_job +from . import hr_job diff --git a/hr_expense_recruitment/models/hr_expense_job.py b/hr_expense_recruitment/models/hr_expense_job.py new file mode 100644 index 00000000..b7911d34 --- /dev/null +++ b/hr_expense_recruitment/models/hr_expense_job.py @@ -0,0 +1,7 @@ +from odoo import api, fields, models + + +class HRExpenseJob(models.Model): + _inherit = 'hr.expense' + + job_id = fields.Many2one('hr.job', string='Job') diff --git a/hr_expense_recruitment/models/hr_job.py b/hr_expense_recruitment/models/hr_job.py new file mode 100644 index 00000000..33492ade --- /dev/null +++ b/hr_expense_recruitment/models/hr_job.py @@ -0,0 +1,18 @@ +from odoo import api, fields, models + + +class HRJob(models.Model): + _inherit = 'hr.job' + + company_currency = fields.Many2one('res.currency', string='Currency', + related='company_id.currency_id', readonly=True) + expense_total_amount = fields.Float(string='Expenses Total', + compute='_compute_expense_total_amount', + compute_sudo=True) + expense_ids = fields.One2many('hr.expense', 'job_id', string='Expenses') + + @api.multi + @api.depends('expense_ids.total_amount') + def _compute_expense_total_amount(self): + for job in self: + job.expense_total_amount = sum(job.expense_ids.mapped('total_amount')) diff --git a/hr_expense_recruitment/tests/__init__.py b/hr_expense_recruitment/tests/__init__.py new file mode 100644 index 00000000..bf77393e --- /dev/null +++ b/hr_expense_recruitment/tests/__init__.py @@ -0,0 +1 @@ +from . import test_expenses diff --git a/hr_expense_recruitment/tests/test_expenses.py b/hr_expense_recruitment/tests/test_expenses.py new file mode 100644 index 00000000..f9ef88ba --- /dev/null +++ b/hr_expense_recruitment/tests/test_expenses.py @@ -0,0 +1,16 @@ +from odoo.tests import common + + +class TestJobExpense(common.TransactionCase): + def test_fields(self): + job = self.env['hr.job'].create({'name': 'Test Job'}) + expense = self.env['hr.expense'].create({ + 'name': 'Test Expense', + 'product_id': self.env['product.product'].search([('can_be_expensed', '=', True)], limit=1).id, + 'unit_amount': 34.0, + }) + self.assertFalse(job.expense_ids) + self.assertEqual(job.expense_total_amount, 0.0) + expense.job_id = job + self.assertTrue(job.expense_ids) + self.assertEqual(job.expense_total_amount, 34.0) diff --git a/hr_expense_recruitment/views/hr_expense_views.xml b/hr_expense_recruitment/views/hr_expense_views.xml new file mode 100644 index 00000000..97f65e7e --- /dev/null +++ b/hr_expense_recruitment/views/hr_expense_views.xml @@ -0,0 +1,24 @@ + + + + hr.expense.form.inherit + hr.expense + + + + + + + + + + hr.expense.filter.inherit + hr.expense + + + + + + + + \ No newline at end of file diff --git a/hr_expense_recruitment/views/hr_job_views.xml b/hr_expense_recruitment/views/hr_job_views.xml new file mode 100644 index 00000000..072d4170 --- /dev/null +++ b/hr_expense_recruitment/views/hr_job_views.xml @@ -0,0 +1,19 @@ + + + + hr.job.form.inherit + hr.job + + + + + + + + + \ No newline at end of file