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 79e180c8f..881805b44 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 @@ -460,7 +460,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { comment: this.activityForm.controls['comment'].value, currency: this.activityForm.controls['currency'].value, customCurrency: this.activityForm.controls['currencyOfUnitPrice'].value, - date: (this.activityForm.controls['date'].value as Date).toISOString(), + date: this.activityForm.controls['date'].value, dataSource: this.activityForm.controls['dataSource'].value, fee: this.activityForm.controls['fee'].value, quantity: this.activityForm.controls['quantity'].value, @@ -481,6 +481,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { await validateObjectForForm({ classDto: UpdateOrderDto, form: this.activityForm, + ignoreFields: ['dataSource', 'date'], object: activity as UpdateOrderDto }); } else { @@ -490,6 +491,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy { await validateObjectForForm({ classDto: CreateOrderDto, form: this.activityForm, + ignoreFields: ['dataSource', 'date'], object: activity }); } diff --git a/apps/client/src/app/util/form.util.ts b/apps/client/src/app/util/form.util.ts index f2dd4f1b8..d11490c7e 100644 --- a/apps/client/src/app/util/form.util.ts +++ b/apps/client/src/app/util/form.util.ts @@ -5,20 +5,26 @@ import { validate } from 'class-validator'; export async function validateObjectForForm({ classDto, form, + ignoreFields = [], object }: { classDto: { new (): T }; form: FormGroup; + ignoreFields?: string[]; object: T; }): Promise { const objectInstance = plainToInstance(classDto, object); const errors = await validate(objectInstance as object); - if (errors.length === 0) { + const nonIgnoredErrors = errors.filter(({ property }) => { + return !ignoreFields.includes(property); + }); + + if (nonIgnoredErrors.length === 0) { return Promise.resolve(); } - for (const { constraints, property } of errors) { + for (const { constraints, property } of nonIgnoredErrors) { const formControl = form.get(property); if (formControl) { @@ -28,5 +34,5 @@ export async function validateObjectForForm({ } } - return Promise.reject(errors); + return Promise.reject(nonIgnoredErrors); }