Browse Source

Fix update account balance of activity without account

pull/7402/head
Thomas Kaul 1 month ago
parent
commit
18227a9a57
  1. 61
      apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts

61
apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts

@ -267,14 +267,7 @@ export class GfCreateOrUpdateActivityDialogComponent {
this.activityForm.get('currencyOfUnitPrice')?.setValue(currency); this.activityForm.get('currencyOfUnitPrice')?.setValue(currency);
} }
if (!['LIABILITY', 'VALUABLE'].includes(type)) { this.syncUpdateAccountBalanceControl();
if (accountId) {
this.activityForm.get('updateAccountBalance')?.enable();
} else {
this.activityForm.get('updateAccountBalance')?.disable();
this.activityForm.get('updateAccountBalance')?.setValue(false);
}
}
}); });
this.activityForm this.activityForm
@ -298,15 +291,7 @@ export class GfCreateOrUpdateActivityDialogComponent {
}); });
this.activityForm.get('date')?.valueChanges.subscribe(() => { this.activityForm.get('date')?.valueChanges.subscribe(() => {
if ( this.syncUpdateAccountBalanceControl();
isToday(this.activityForm.get('date')?.value) &&
this.activityForm.get('accountId')?.value
) {
this.activityForm.get('updateAccountBalance')?.enable();
} else {
this.activityForm.get('updateAccountBalance')?.disable();
this.activityForm.get('updateAccountBalance')?.setValue(false);
}
this.changeDetectorRef.markForCheck(); this.changeDetectorRef.markForCheck();
}); });
@ -386,8 +371,6 @@ export class GfCreateOrUpdateActivityDialogComponent {
.get('searchSymbol') .get('searchSymbol')
?.removeValidators(Validators.required); ?.removeValidators(Validators.required);
this.activityForm.get('searchSymbol')?.updateValueAndValidity(); this.activityForm.get('searchSymbol')?.updateValueAndValidity();
this.activityForm.get('updateAccountBalance')?.disable();
this.activityForm.get('updateAccountBalance')?.setValue(false);
} else if (['FEE', 'INTEREST', 'LIABILITY'].includes(type)) { } else if (['FEE', 'INTEREST', 'LIABILITY'].includes(type)) {
const currency = const currency =
this.data.accounts.find(({ id }) => { this.data.accounts.find(({ id }) => {
@ -423,16 +406,6 @@ export class GfCreateOrUpdateActivityDialogComponent {
if (type === 'FEE') { if (type === 'FEE') {
this.activityForm.get('unitPrice')?.setValue(0); this.activityForm.get('unitPrice')?.setValue(0);
} }
if (
['FEE', 'INTEREST'].includes(type) &&
this.activityForm.get('accountId')?.value
) {
this.activityForm.get('updateAccountBalance')?.enable();
} else {
this.activityForm.get('updateAccountBalance')?.disable();
this.activityForm.get('updateAccountBalance')?.setValue(false);
}
} else { } else {
this.activityForm this.activityForm
.get('dataSource') .get('dataSource')
@ -444,15 +417,10 @@ export class GfCreateOrUpdateActivityDialogComponent {
.get('searchSymbol') .get('searchSymbol')
?.setValidators(Validators.required); ?.setValidators(Validators.required);
this.activityForm.get('searchSymbol')?.updateValueAndValidity(); this.activityForm.get('searchSymbol')?.updateValueAndValidity();
if (this.activityForm.get('accountId')?.value) {
this.activityForm.get('updateAccountBalance')?.enable();
} else {
this.activityForm.get('updateAccountBalance')?.disable();
this.activityForm.get('updateAccountBalance')?.setValue(false);
}
} }
this.syncUpdateAccountBalanceControl();
this.changeDetectorRef.markForCheck(); this.changeDetectorRef.markForCheck();
}); });
@ -567,6 +535,27 @@ export class GfCreateOrUpdateActivityDialogComponent {
} }
} }
private syncUpdateAccountBalanceControl() {
const accountBalanceControl = this.activityForm.get('updateAccountBalance');
const accountId = this.activityForm.get('accountId')?.value;
const dataSource = this.activityForm.get('dataSource')?.value;
const date = this.activityForm.get('date')?.value;
const type = this.activityForm.get('type')?.value;
const isEligible =
!!accountId &&
isToday(date) &&
!['LIABILITY', 'VALUABLE'].includes(type) &&
!(dataSource === 'MANUAL' && type === 'BUY');
if (isEligible) {
accountBalanceControl?.enable();
} else {
accountBalanceControl?.disable();
accountBalanceControl?.setValue(false);
}
}
private updateAssetProfile() { private updateAssetProfile() {
this.isLoading = true; this.isLoading = true;
this.changeDetectorRef.markForCheck(); this.changeDetectorRef.markForCheck();

Loading…
Cancel
Save