diff --git a/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html b/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
index d81a3c1f3..618626b63 100644
--- a/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
+++ b/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.html
@@ -7,8 +7,8 @@
>
@if (
- data.rule.configuration.thresholdMin &&
- data.rule.configuration.thresholdMax
+ data.rule.configuration?.thresholdMin &&
+ data.rule.configuration?.thresholdMax
) {
diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
index 91f4b6210..439cdaea7 100644
--- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts
@@ -52,7 +52,7 @@ import { ImportActivitiesDialogParams } from './import-activities-dialog/interfa
})
export class GfActivitiesPageComponent implements OnInit {
public activityTypesFilter: string[] = [];
- public dataSource: MatTableDataSource;
+ public dataSource: MatTableDataSource | undefined;
public deviceType: string;
public hasImpersonationId: boolean;
public hasPermissionToCreateActivity: boolean;
@@ -238,7 +238,7 @@ export class GfActivitiesPageComponent implements OnInit {
.pipe(takeUntilDestroyed(this.destroyRef))
.subscribe((data) => {
for (const activity of data.activities) {
- delete activity.id;
+ delete (activity as Omit & { id?: string }).id;
}
downloadAsFile({
@@ -383,7 +383,7 @@ export class GfActivitiesPageComponent implements OnInit {
});
}
- private isCalendarYear(dateRange: DateRange) {
+ private isCalendarYear(dateRange?: DateRange) {
if (!dateRange) {
return false;
}
@@ -410,11 +410,12 @@ export class GfActivitiesPageComponent implements OnInit {
date: new Date(),
id: null,
fee: 0,
+ SymbolProfile: null,
type: aActivity?.type ?? 'BUY',
unitPrice: null
},
user: this.user
- },
+ } satisfies CreateOrUpdateActivityDialogParams,
height: this.deviceType === 'mobile' ? '98vh' : '80vh',
width: this.deviceType === 'mobile' ? '100vw' : '50rem'
});
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
index 4dbf6ad9f..836d84b80 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts
@@ -536,7 +536,11 @@ export class GfCreateOrUpdateActivityDialogComponent {
this.dialogRef.close(activity);
} else {
- (activity as UpdateOrderDto).id = this.data.activity?.id;
+ const activityId = this.data.activity?.id;
+ if (!activityId) {
+ throw new Error('Activity ID is required for update');
+ }
+ (activity as UpdateOrderDto).id = activityId;
await validateObjectForForm({
classDto: UpdateOrderDto,
diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts
index 322bcc076..c493b5a5f 100644
--- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts
+++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/interfaces/interfaces.ts
@@ -4,7 +4,9 @@ import { Account } from '@prisma/client';
export interface CreateOrUpdateActivityDialogParams {
accounts: Account[];
- activity: Omit & {
+ activity: Partial> & {
+ id: string | null;
+ unitPrice: number | null;
SymbolProfile: Activity['SymbolProfile'] | null;
};
user: User;