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)" >