mirror of
https://github.com/bringout/oca-hr.git
synced 2026-04-26 00:32:05 +02:00
Move all OCA HR modules from oca-technical to dedicated oca-hr submodule
Reorganized 67 HR-related modules for better structure: - Moved all odoo-bringout-oca-hr-* packages from packages/oca-technical/ - Now organized in dedicated packages/oca-hr/ submodule - Includes attendance, expense, holiday, employee, and contract modules - Maintains all module functionality while improving project organization This creates a cleaner separation between general technical modules and HR-specific functionality. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
f672249949
commit
dfcda4100c
2456 changed files with 120722 additions and 0 deletions
|
|
@ -0,0 +1,3 @@
|
|||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from . import test_hr_employee_service
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
# Copyright (C) 2018 Brainbean Apps (https://brainbeanapps.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from datetime import date
|
||||
from unittest.mock import patch
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import fields
|
||||
from odoo.tests import common
|
||||
|
||||
|
||||
class TestHrEmployeeService(common.TransactionCase):
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
||||
self.today = fields.Date.today()
|
||||
self.now = fields.Datetime.now()
|
||||
self.Employee = self.env["hr.employee"]
|
||||
self.SudoEmployee = self.Employee.sudo()
|
||||
|
||||
def test_1(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #1",
|
||||
"service_hire_date": (self.today - relativedelta(years=3)),
|
||||
"service_start_date": (self.today - relativedelta(years=3)),
|
||||
"departure_date": (self.today - relativedelta(years=1)),
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(employee.service_duration_years, 2)
|
||||
self.assertEqual(employee.service_duration_months, 0)
|
||||
self.assertEqual(employee.service_duration_days, 0)
|
||||
|
||||
def test_2(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #2",
|
||||
"service_hire_date": (self.today - relativedelta(years=3)),
|
||||
"service_start_date": (self.today - relativedelta(years=3)),
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(employee.service_duration_years, 3)
|
||||
self.assertEqual(employee.service_duration_months, 0)
|
||||
self.assertEqual(employee.service_duration_days, 0)
|
||||
|
||||
def test_3(self):
|
||||
mocked_today = date(2019, 8, 27)
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #3",
|
||||
"service_hire_date": (mocked_today - relativedelta(months=6)),
|
||||
"service_start_date": (mocked_today - relativedelta(months=6)),
|
||||
}
|
||||
)
|
||||
|
||||
with patch("odoo.fields.Date.today") as today:
|
||||
today.return_value = mocked_today
|
||||
self.assertEqual(employee.service_duration_years, 0)
|
||||
self.assertEqual(employee.service_duration_months, 6)
|
||||
self.assertEqual(employee.service_duration_days, 0)
|
||||
|
||||
def test_4(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #4",
|
||||
"service_hire_date": (self.today - relativedelta(months=6)),
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(employee.service_duration_years, 0)
|
||||
self.assertEqual(employee.service_duration_months, 0)
|
||||
self.assertEqual(employee.service_duration_days, 0)
|
||||
|
||||
def test_5(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #5",
|
||||
"service_hire_date": (self.today - relativedelta(days=1)),
|
||||
"service_start_date": (self.today - relativedelta(days=1)),
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(employee.service_duration, 1)
|
||||
self.assertEqual(employee.service_duration_days, 1)
|
||||
|
||||
def test_6(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #6",
|
||||
"service_hire_date": self.today,
|
||||
"service_start_date": self.today,
|
||||
}
|
||||
)
|
||||
|
||||
employee.service_hire_date = None
|
||||
employee.service_start_date = None
|
||||
|
||||
self.assertEqual(employee.service_duration_years, 0)
|
||||
self.assertEqual(employee.service_duration_months, 0)
|
||||
self.assertEqual(employee.service_duration_days, 0)
|
||||
|
||||
def test_7(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #7",
|
||||
"service_hire_date": (self.today - relativedelta(days=1)),
|
||||
}
|
||||
)
|
||||
|
||||
employee._onchange_service_hire_date()
|
||||
|
||||
self.assertEqual(employee.service_duration_years, 0)
|
||||
self.assertEqual(employee.service_duration_months, 0)
|
||||
self.assertEqual(employee.service_duration_days, 1)
|
||||
|
||||
def test_8(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #8",
|
||||
"service_hire_date": (self.today - relativedelta(days=1)),
|
||||
"service_start_date": (self.today - relativedelta(days=1)),
|
||||
"departure_date": (self.today - relativedelta(years=1)),
|
||||
}
|
||||
)
|
||||
|
||||
self.assertEqual(employee.service_duration, 0)
|
||||
|
||||
def test_get_service_duration_from_date(self):
|
||||
employee = self.SudoEmployee.create(
|
||||
{
|
||||
"name": "Employee #9",
|
||||
"service_hire_date": (self.today - relativedelta(years=1)),
|
||||
"service_start_date": (self.today - relativedelta(years=1)),
|
||||
}
|
||||
)
|
||||
search_date = self.today - relativedelta(months=10)
|
||||
result = employee.get_service_duration_from_date(search_date)
|
||||
self.assertEqual(result["years"], 0)
|
||||
self.assertEqual(result["months"], 2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue