|
|
@ -46,6 +46,7 @@ export class CreateOrUpdateTransactionDialog implements OnDestroy { |
|
|
|
public filteredLookupItemsObservable: Observable<LookupItem[]>; |
|
|
|
public isLoading = false; |
|
|
|
public platforms: { id: string; name: string }[]; |
|
|
|
public total = 0; |
|
|
|
public Validators = Validators; |
|
|
|
|
|
|
|
private unsubscribeSubject = new Subject<void>(); |
|
|
@ -89,6 +90,25 @@ export class CreateOrUpdateTransactionDialog implements OnDestroy { |
|
|
|
unitPrice: [this.data.activity?.unitPrice, Validators.required] |
|
|
|
}); |
|
|
|
|
|
|
|
this.activityForm.valueChanges |
|
|
|
.pipe(takeUntil(this.unsubscribeSubject)) |
|
|
|
.subscribe(() => { |
|
|
|
if ( |
|
|
|
this.activityForm.controls['type'].value === 'BUY' || |
|
|
|
this.activityForm.controls['type'].value === 'ITEM' |
|
|
|
) { |
|
|
|
this.total = |
|
|
|
this.activityForm.controls['quantity'].value * |
|
|
|
this.activityForm.controls['unitPrice'].value + |
|
|
|
this.activityForm.controls['fee'].value ?? 0; |
|
|
|
} else { |
|
|
|
this.total = |
|
|
|
this.activityForm.controls['quantity'].value * |
|
|
|
this.activityForm.controls['unitPrice'].value - |
|
|
|
this.activityForm.controls['fee'].value ?? 0; |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
this.filteredLookupItemsObservable = this.activityForm.controls[ |
|
|
|
'searchSymbol' |
|
|
|
].valueChanges.pipe( |
|
|
@ -100,9 +120,11 @@ export class CreateOrUpdateTransactionDialog implements OnDestroy { |
|
|
|
const filteredLookupItemsObservable = |
|
|
|
this.dataService.fetchSymbols(query); |
|
|
|
|
|
|
|
filteredLookupItemsObservable.subscribe((filteredLookupItems) => { |
|
|
|
this.filteredLookupItems = filteredLookupItems; |
|
|
|
}); |
|
|
|
filteredLookupItemsObservable |
|
|
|
.pipe(takeUntil(this.unsubscribeSubject)) |
|
|
|
.subscribe((filteredLookupItems) => { |
|
|
|
this.filteredLookupItems = filteredLookupItems; |
|
|
|
}); |
|
|
|
|
|
|
|
return filteredLookupItemsObservable; |
|
|
|
} |
|
|
@ -111,45 +133,47 @@ export class CreateOrUpdateTransactionDialog implements OnDestroy { |
|
|
|
}) |
|
|
|
); |
|
|
|
|
|
|
|
this.activityForm.controls['type'].valueChanges.subscribe((type: Type) => { |
|
|
|
if (type === 'ITEM') { |
|
|
|
this.activityForm.controls['accountId'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['accountId'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['currency'].setValue( |
|
|
|
this.data.user.settings.baseCurrency |
|
|
|
); |
|
|
|
this.activityForm.controls['dataSource'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['dataSource'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['name'].setValidators(Validators.required); |
|
|
|
this.activityForm.controls['name'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['quantity'].setValue(1); |
|
|
|
this.activityForm.controls['searchSymbol'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['searchSymbol'].updateValueAndValidity(); |
|
|
|
} else { |
|
|
|
this.activityForm.controls['accountId'].setValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['accountId'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['dataSource'].setValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['dataSource'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['name'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['name'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['searchSymbol'].setValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['searchSymbol'].updateValueAndValidity(); |
|
|
|
} |
|
|
|
}); |
|
|
|
this.activityForm.controls['type'].valueChanges |
|
|
|
.pipe(takeUntil(this.unsubscribeSubject)) |
|
|
|
.subscribe((type: Type) => { |
|
|
|
if (type === 'ITEM') { |
|
|
|
this.activityForm.controls['accountId'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['accountId'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['currency'].setValue( |
|
|
|
this.data.user.settings.baseCurrency |
|
|
|
); |
|
|
|
this.activityForm.controls['dataSource'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['dataSource'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['name'].setValidators(Validators.required); |
|
|
|
this.activityForm.controls['name'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['quantity'].setValue(1); |
|
|
|
this.activityForm.controls['searchSymbol'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['searchSymbol'].updateValueAndValidity(); |
|
|
|
} else { |
|
|
|
this.activityForm.controls['accountId'].setValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['accountId'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['dataSource'].setValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['dataSource'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['name'].removeValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['name'].updateValueAndValidity(); |
|
|
|
this.activityForm.controls['searchSymbol'].setValidators( |
|
|
|
Validators.required |
|
|
|
); |
|
|
|
this.activityForm.controls['searchSymbol'].updateValueAndValidity(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
this.activityForm.controls['type'].setValue(this.data.activity?.type); |
|
|
|
|
|
|
|