diff --git a/core/apps/finance/migrations/0017_alter_expence_project_folder_alter_income_date_and_more.py b/core/apps/finance/migrations/0017_alter_expence_project_folder_alter_income_date_and_more.py new file mode 100644 index 0000000..b2f5d13 --- /dev/null +++ b/core/apps/finance/migrations/0017_alter_expence_project_folder_alter_income_date_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 5.2.4 on 2025-09-10 14:00 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('finance', '0016_alter_income_exchange_rate'), + ('projects', '0016_estimatework_employee_estimatework_end_date_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='expence', + name='project_folder', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='expences', to='projects.projectfolder'), + ), + migrations.AlterField( + model_name='income', + name='date', + field=models.DateField(blank=True, null=True), + ), + migrations.AlterField( + model_name='income', + name='project_folder', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='incomes', to='projects.projectfolder'), + ), + ] diff --git a/core/apps/finance/models/expence.py b/core/apps/finance/models/expence.py index 93b194d..0dff0bd 100644 --- a/core/apps/finance/models/expence.py +++ b/core/apps/finance/models/expence.py @@ -9,7 +9,7 @@ class Expence(BaseModel): cash_transaction = models.ForeignKey(CashTransaction, on_delete=models.CASCADE, related_name='expences') payment_type = models.ForeignKey(PaymentType, on_delete=models.CASCADE, related_name='expences') project_folder = models.ForeignKey( - 'projects.ProjectFolder', on_delete=models.CASCADE, related_name='expences' + 'projects.ProjectFolder', on_delete=models.SET_NULL, related_name='expences', null=True, blank=True ) project = models.ForeignKey( 'projects.Project', on_delete=models.SET_NULL, null=True, related_name='expences', blank=True diff --git a/core/apps/finance/models/income.py b/core/apps/finance/models/income.py index 311f30b..d276ca7 100644 --- a/core/apps/finance/models/income.py +++ b/core/apps/finance/models/income.py @@ -11,7 +11,7 @@ class Income(BaseModel): ) payment_type = models.ForeignKey(PaymentType, on_delete=models.CASCADE, related_name='incomes') project_folder = models.ForeignKey( - 'projects.ProjectFolder', on_delete=models.CASCADE, related_name='incomes' + 'projects.ProjectFolder', on_delete=models.SET_NULL, related_name='incomes', null=True, blank=True ) project = models.ForeignKey( 'projects.Project', on_delete=models.SET_NULL, related_name='incomes', null=True, blank=True diff --git a/core/apps/finance/serializers/expence.py b/core/apps/finance/serializers/expence.py index 00c1ec8..decf08b 100644 --- a/core/apps/finance/serializers/expence.py +++ b/core/apps/finance/serializers/expence.py @@ -105,7 +105,7 @@ class ExpenceListSerializer(serializers.ModelSerializer): return { 'id': obj.project_folder.id, 'name': obj.project_folder.name - } + } if obj.project_folder else None def get_project(self, obj): return { diff --git a/core/apps/finance/serializers/income.py b/core/apps/finance/serializers/income.py index 7e544b0..9f29d5b 100644 --- a/core/apps/finance/serializers/income.py +++ b/core/apps/finance/serializers/income.py @@ -37,7 +37,7 @@ class IncomeListSerializer(serializers.ModelSerializer): return { 'id': obj.project_folder.id, 'name': obj.project_folder.name - } + } if obj.project_folder else None def get_project(self, obj): return { @@ -72,7 +72,7 @@ class IncomeCreateSerializer(serializers.ModelSerializer): income = Income.objects.create( cash_transaction=validated_data['cash_transaction'], payment_type=validated_data['payment_type'], - project_folder=validated_data['project_folder'], + project_folder=validated_data.get('project_folder'), project=validated_data.get('project'), counterparty=validated_data.get('counterparty'), type_income=validated_data.get('type_income'),