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..e5c7c11e3 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..eeacbbfc3 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 @@ -36,6 +36,7 @@ export class TransactionsTableComponent @Output() transactionDeleted = new EventEmitter(); @Output() transactionToUpdate = new EventEmitter(); + @Output() transactionToDuplicate = new EventEmitter(); @ViewChild(MatSort) sort: MatSort; @@ -123,6 +124,10 @@ export class TransactionsTableComponent this.transactionToUpdate.emit(aTransaction); } + public onDuplicateTransaction(aTransaction: OrderModel) { + this.transactionToDuplicate.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..e56dba3eb 100644 --- a/apps/client/src/app/pages/transactions/transactions-page.component.ts +++ b/apps/client/src/app/pages/transactions/transactions-page.component.ts @@ -123,6 +123,10 @@ export class TransactionsPageComponent implements OnInit { }); } + public onDuplicateTransaction(aTransaction: OrderModel) { + this.openCreateTransactionDialog(aTransaction); + } + public openUpdateTransactionDialog({ accountId, currency, @@ -175,7 +179,7 @@ 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, @@ -183,11 +187,11 @@ export class TransactionsPageComponent implements OnInit { accountId: this.user?.accounts.find((account) => { return account.isDefault; })?.id, - currency: null, + currency: aTransaction?.currency || null, date: new Date(), fee: 0, quantity: null, - symbol: null, + symbol: aTransaction?.symbol || null, 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..41d9131b9 100644 --- a/apps/client/src/app/pages/transactions/transactions-page.html +++ b/apps/client/src/app/pages/transactions/transactions-page.html @@ -10,6 +10,7 @@ [transactions]="transactions" (transactionDeleted)="onDeleteTransaction($event)" (transactionToUpdate)="onUpdateTransaction($event)" + (transactionToDuplicate)="onDuplicateTransaction($event)" >