Optionally update cash balance when adding activity (#1926)

* Optionally update cash balance when adding activity

* Update changelog
This commit is contained in:
Francisco Silva
2023-05-06 09:01:09 +02:00
committed by GitHub
parent 876b66f324
commit 8ba15f8f72
11 changed files with 110 additions and 8 deletions

View File

@@ -139,7 +139,8 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
unitPriceInCustomCurrency: [
this.data.activity?.unitPrice,
Validators.required
]
],
updateAccountBalance: [false]
});
this.activityForm.valueChanges
@@ -297,6 +298,8 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
Validators.required
);
this.activityForm.controls['searchSymbol'].updateValueAndValidity();
this.activityForm.controls['updateAccountBalance'].disable();
this.activityForm.controls['updateAccountBalance'].setValue(false);
} else {
this.activityForm.controls['accountId'].setValidators(
Validators.required
@@ -314,6 +317,7 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
Validators.required
);
this.activityForm.controls['searchSymbol'].updateValueAndValidity();
this.activityForm.controls['updateAccountBalance'].enable();
}
this.changeDetectorRef.markForCheck();
@@ -411,7 +415,9 @@ export class CreateOrUpdateActivityDialog implements OnDestroy {
: this.activityForm.controls['searchSymbol'].value.symbol,
tags: this.activityForm.controls['tags'].value,
type: this.activityForm.controls['type'].value,
unitPrice: this.activityForm.controls['unitPrice'].value
unitPrice: this.activityForm.controls['unitPrice'].value,
updateAccountBalance:
this.activityForm.controls['updateAccountBalance'].value
};
if (this.data.activity.id) {

View File

@@ -18,8 +18,8 @@
</mat-select>
</mat-form-field>
</div>
<div class="mb-3">
<mat-form-field appearance="outline" class="w-100">
<div>
<mat-form-field appearance="outline" class="mb-1 without-hint w-100">
<mat-label i18n>Account</mat-label>
<mat-select formControlName="accountId">
<mat-option
@@ -32,6 +32,11 @@
</mat-select>
</mat-form-field>
</div>
<div class="mb-3">
<mat-checkbox color="primary" formControlName="updateAccountBalance" i18n
>Update Cash Balance</mat-checkbox
>
</div>
<div
class="mb-3"
[ngClass]="{ 'd-none': !activityForm.controls['searchSymbol'].hasValidator(Validators.required) }"

View File

@@ -8,6 +8,7 @@ import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatDialogModule } from '@angular/material/dialog';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSelectModule } from '@angular/material/select';
import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module';
@@ -24,6 +25,7 @@ import { CreateOrUpdateActivityDialog } from './create-or-update-activity-dialog
GfValueModule,
MatAutocompleteModule,
MatButtonModule,
MatCheckboxModule,
MatChipsModule,
MatDatepickerModule,
MatDialogModule,

View File

@@ -59,7 +59,8 @@ export class ImportActivitiesService {
quantity: this.parseQuantity({ content, index, item }),
symbol: this.parseSymbol({ content, index, item }),
type: this.parseType({ content, index, item }),
unitPrice: this.parseUnitPrice({ content, index, item })
unitPrice: this.parseUnitPrice({ content, index, item }),
updateAccountBalance: false
});
}
@@ -126,7 +127,8 @@ export class ImportActivitiesService {
quantity,
SymbolProfile,
type,
unitPrice
unitPrice,
updateAccountBalance
}: Activity): CreateOrderDto {
return {
accountId,
@@ -134,6 +136,7 @@ export class ImportActivitiesService {
quantity,
type,
unitPrice,
updateAccountBalance,
currency: SymbolProfile.currency,
date: date.toString(),
symbol: SymbolProfile.symbol