From b6bc5ceb9eebdf12a30ced5e419fc9ae7c55db9f Mon Sep 17 00:00:00 2001 From: Caitlin Barnard Date: Wed, 29 Jan 2025 13:35:54 +0000 Subject: [PATCH] Remove EmployeePayElement and PayElementType --- payroll/admin.py | 28 +---- payroll/fixtures/test_payroll_data.json | 116 ------------------ ...17_remove_payelementtype_group_and_more.py | 27 ++++ payroll/models.py | 21 ---- payroll/tests/factories.py | 12 +- 5 files changed, 29 insertions(+), 175 deletions(-) create mode 100644 payroll/migrations/0017_remove_payelementtype_group_and_more.py diff --git a/payroll/admin.py b/payroll/admin.py index 52a1998e..161fe7c5 100644 --- a/payroll/admin.py +++ b/payroll/admin.py @@ -2,14 +2,7 @@ from payroll.services.payroll import employee_created, vacancy_created -from .models import ( - Employee, - EmployeePayElement, - EmployeePayPeriods, - PayElementType, - PayElementTypeGroup, - Vacancy, -) +from .models import Employee, EmployeePayPeriods, PayElementTypeGroup, Vacancy @admin.register(Employee) @@ -53,25 +46,6 @@ class EmployeePayPeriodsAdmin(admin.ModelAdmin): ] -@admin.register(EmployeePayElement) -class EmployeePayElementAdmin(admin.ModelAdmin): - list_display = [ - "employee", - "type", - "debit_amount", - "credit_amount", - ] - - -@admin.register(PayElementType) -class PayElementTypeAdmin(admin.ModelAdmin): - list_display = [ - "name", - "natural_code", - "group", - ] - - @admin.register(PayElementTypeGroup) class PayElementTypeGroupAdmin(admin.ModelAdmin): list_display = [ diff --git a/payroll/fixtures/test_payroll_data.json b/payroll/fixtures/test_payroll_data.json index ad5af4fb..08af919a 100644 --- a/payroll/fixtures/test_payroll_data.json +++ b/payroll/fixtures/test_payroll_data.json @@ -406,121 +406,5 @@ "name": "Superannuation", "natural_code": 71111003 } - }, - { - "model": "payroll.payelementtype", - "pk": 1, - "fields": { - "name": "Basic Pay 1", - "natural_code": 71111001, - "group": 1 - } - }, - { - "model": "payroll.payelementtype", - "pk": 2, - "fields": { - "name": "Basic Pay 2", - "natural_code": 71111001, - "group": 1 - } - }, - { - "model": "payroll.payelementtype", - "pk": 3, - "fields": { - "name": "ERNIC", - "natural_code": 71111002, - "group": 2 - } - }, - { - "model": "payroll.payelementtype", - "pk": 4, - "fields": { - "name": "Superannuation", - "natural_code": 71111003, - "group": 3 - } - }, - { - "model": "payroll.employeepayelement", - "pk": 1, - "fields": { - "employee": 1, - "type": 1, - "debit_amount": "2500.00", - "credit_amount": "500.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 2, - "fields": { - "employee": 1, - "type": 2, - "debit_amount": "300.00", - "credit_amount": "0.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 3, - "fields": { - "employee": 1, - "type": 3, - "debit_amount": "100.00", - "credit_amount": "10.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 4, - "fields": { - "employee": 1, - "type": 4, - "debit_amount": "400.00", - "credit_amount": "0.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 5, - "fields": { - "employee": 2, - "type": 1, - "debit_amount": "3000.00", - "credit_amount": "300.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 6, - "fields": { - "employee": 2, - "type": 2, - "debit_amount": "0.00", - "credit_amount": "20.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 7, - "fields": { - "employee": 2, - "type": 3, - "debit_amount": "500.00", - "credit_amount": "0.00" - } - }, - { - "model": "payroll.employeepayelement", - "pk": 8, - "fields": { - "employee": 2, - "type": 4, - "debit_amount": "600.00", - "credit_amount": "0.00" - } } ] diff --git a/payroll/migrations/0017_remove_payelementtype_group_and_more.py b/payroll/migrations/0017_remove_payelementtype_group_and_more.py new file mode 100644 index 00000000..311723ac --- /dev/null +++ b/payroll/migrations/0017_remove_payelementtype_group_and_more.py @@ -0,0 +1,27 @@ +# Generated by Django 5.1.5 on 2025-01-29 13:35 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("payroll", "0016_employee_has_left"), + ] + + operations = [ + migrations.RemoveField( + model_name="payelementtype", + name="group", + ), + migrations.RemoveField( + model_name="payelementtype", + name="natural_code", + ), + migrations.DeleteModel( + name="EmployeePayElement", + ), + migrations.DeleteModel( + name="PayElementType", + ), + ] diff --git a/payroll/models.py b/payroll/models.py index 3b6a8716..5828ec82 100644 --- a/payroll/models.py +++ b/payroll/models.py @@ -134,27 +134,6 @@ def __str__(self) -> str: return self.name -class PayElementType(models.Model): - name = models.CharField(max_length=128, unique=True) - # aka "account code" - natural_code = models.ForeignKey("chartofaccountDIT.NaturalCode", models.PROTECT) - group = models.ForeignKey(PayElementTypeGroup, models.PROTECT) - - def __str__(self) -> str: - return self.name - - -class EmployeePayElement(models.Model): - """A many-to-many through model that represents an employee's pay make-up.""" - - employee = models.ForeignKey(Employee, models.PROTECT, related_name="pay_element") - type = models.ForeignKey(PayElementType, models.PROTECT) - # Support up to 9,999,999.99. - debit_amount = models.DecimalField(max_digits=9, decimal_places=2) - # Support up to 9,999,999.99. - credit_amount = models.DecimalField(max_digits=9, decimal_places=2) - - class Vacancy(Position): class Meta: verbose_name_plural = "Vacancies" diff --git a/payroll/tests/factories.py b/payroll/tests/factories.py index 220d08e6..43cf246f 100644 --- a/payroll/tests/factories.py +++ b/payroll/tests/factories.py @@ -7,7 +7,7 @@ from core.test.factories import FinancialYearFactory from costcentre.test.factories import CostCentreFactory from gifthospitality.test.factories import GradeFactory -from payroll.models import Employee, PayElementType, PayElementTypeGroup, Vacancy +from payroll.models import Employee, PayElementTypeGroup, Vacancy fake = Faker() @@ -37,16 +37,6 @@ class Meta: natural_code = factory.SubFactory(NaturalCodeFactory) -class PayElementTypeFactory(factory.django.DjangoModelFactory): - class Meta: - model = PayElementType - django_get_or_create = ("name",) - - # name - natural_code = factory.SubFactory(NaturalCodeFactory) - group = factory.SubFactory(PayElementTypeGroupFactory) - - class VacancyFactory(factory.django.DjangoModelFactory): class Meta: model = Vacancy