diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.html b/apps/client/src/app/components/transactions-table/transactions-table.component.html
index 7c0bd479d..9d2165180 100644
--- a/apps/client/src/app/components/transactions-table/transactions-table.component.html
+++ b/apps/client/src/app/components/transactions-table/transactions-table.component.html
@@ -177,6 +177,9 @@
+
diff --git a/apps/client/src/app/components/transactions-table/transactions-table.component.ts b/apps/client/src/app/components/transactions-table/transactions-table.component.ts
index b4d20b33f..4978701f4 100644
--- a/apps/client/src/app/components/transactions-table/transactions-table.component.ts
+++ b/apps/client/src/app/components/transactions-table/transactions-table.component.ts
@@ -35,6 +35,7 @@ export class TransactionsTableComponent
@Input() transactions: OrderModel[];
@Output() transactionDeleted = new EventEmitter();
+ @Output() transactionToClone = new EventEmitter();
@Output() transactionToUpdate = new EventEmitter();
@ViewChild(MatSort) sort: MatSort;
@@ -123,6 +124,10 @@ export class TransactionsTableComponent
this.transactionToUpdate.emit(aTransaction);
}
+ public onCloneTransaction(aTransaction: OrderModel) {
+ this.transactionToClone.emit(aTransaction);
+ }
+
public openPositionDialog({
symbol,
title
diff --git a/apps/client/src/app/pages/transactions/transactions-page.component.ts b/apps/client/src/app/pages/transactions/transactions-page.component.ts
index ef02e49c0..bfae6b8a1 100644
--- a/apps/client/src/app/pages/transactions/transactions-page.component.ts
+++ b/apps/client/src/app/pages/transactions/transactions-page.component.ts
@@ -109,6 +109,10 @@ export class TransactionsPageComponent implements OnInit {
});
}
+ public onCloneTransaction(aTransaction: OrderModel) {
+ this.openCreateTransactionDialog(aTransaction);
+ }
+
public onDeleteTransaction(aId: string) {
this.dataService.deleteOrder(aId).subscribe({
next: () => {
@@ -175,20 +179,21 @@ export class TransactionsPageComponent implements OnInit {
this.unsubscribeSubject.complete();
}
- private openCreateTransactionDialog(): void {
+ private openCreateTransactionDialog(aTransaction?: OrderModel): void {
const dialogRef = this.dialog.open(CreateOrUpdateTransactionDialog, {
data: {
accounts: this.user?.accounts,
transaction: {
- accountId: this.user?.accounts.find((account) => {
+ accountId: aTransaction?.accountId ?? this.user?.accounts.find((account) => {
return account.isDefault;
})?.id,
- currency: null,
+ currency: aTransaction?.currency ?? null,
+ dataSource: aTransaction?.dataSource ?? null,
date: new Date(),
fee: 0,
quantity: null,
- symbol: null,
- type: 'BUY',
+ symbol: aTransaction?.symbol ?? null,
+ type: aTransaction?.type ?? 'BUY',
unitPrice: null
}
},
diff --git a/apps/client/src/app/pages/transactions/transactions-page.html b/apps/client/src/app/pages/transactions/transactions-page.html
index d290f54ed..fc7b9d3a8 100644
--- a/apps/client/src/app/pages/transactions/transactions-page.html
+++ b/apps/client/src/app/pages/transactions/transactions-page.html
@@ -9,6 +9,7 @@
[showActions]="!hasImpersonationId && hasPermissionToDeleteOrder"
[transactions]="transactions"
(transactionDeleted)="onDeleteTransaction($event)"
+ (transactionToClone)="onCloneTransaction($event)"
(transactionToUpdate)="onUpdateTransaction($event)"
>