diff --git a/.gitignore b/.gitignore
index e7db1a743..50edd2db7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,5 +42,5 @@ testem.log
Thumbs.db
# Config
-appConfig.json
-authConfig.json
\ No newline at end of file
+appConfig*.json
+authConfig*.json
\ No newline at end of file
diff --git a/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.html b/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.html
index 4fb09d6b4..2ef1debaf 100644
--- a/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.html
+++ b/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.html
@@ -4,7 +4,6 @@
[extensions]="extensions"
[formControl]="control"
namespace="deposit"
- noToolbar
type="DepositParams"
>
@@ -13,7 +12,3 @@
-
-
-
-
diff --git a/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.ts b/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.ts
index 45a98c762..52016e922 100644
--- a/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.ts
+++ b/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.component.ts
@@ -1,17 +1,16 @@
-import { BehaviorSubject, of } from 'rxjs';
-import { first, map, switchMap } from 'rxjs/operators';
-import { Overwrite } from 'utility-types';
+import { BehaviorSubject, combineLatest, first, map, of, switchMap } from 'rxjs';
import { Component, DestroyRef, TemplateRef, ViewChild, inject } from '@angular/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { FormControl, Validators } from '@angular/forms';
import { DepositParams } from '@vality/fistful-proto/deposit';
-import { DialogSuperclass, NotifyLogService, progressTo } from '@vality/matez';
+import { DialogSuperclass, NotifyLogService, progressTo, tapLog } from '@vality/matez';
import { ThriftFormExtension, isTypeWithAliases } from '@vality/ng-thrift';
-import { ThriftDepositManagementService } from '~/api/services';
-import { SourceCash } from '~/components/source-cash-field';
+import { DomainObjectsStoreService } from '~/api/domain-config';
+import { ThriftDepositManagementService, ThriftRepositoryClientService } from '~/api/services';
+import { getDomainObjectOption } from '~/components/thrift-api-crud/domain/services/domain-metadata-form-extensions/utils/get-domain-object-option';
import { UserInfoBasedIdGeneratorService } from '~/services';
import { FetchSourcesService } from '../../../sources';
@@ -21,13 +20,15 @@ import { FetchSourcesService } from '../../../sources';
standalone: false,
})
export class CreateDepositDialogComponent extends DialogSuperclass {
- private destroyRef = inject(DestroyRef);
+ private dr = inject(DestroyRef);
private depositManagementService = inject(ThriftDepositManagementService);
private log = inject(NotifyLogService);
private userInfoBasedIdGeneratorService = inject(UserInfoBasedIdGeneratorService);
+ private domainStoreService = inject(DomainObjectsStoreService);
private fetchSourcesService = inject(FetchSourcesService);
+ private thriftRepositoryClientService = inject(ThriftRepositoryClientService);
- @ViewChild('sourceCashTemplate') sourceCashTemplate: TemplateRef;
+ @ViewChild('currencyTemplate') currencyTemplate: TemplateRef;
control = new FormControl(this.getDefaultValue(), [Validators.required]);
progress$ = new BehaviorSubject(0);
@@ -37,40 +38,59 @@ export class CreateDepositDialogComponent extends DialogSuperclass of({ hidden: true }),
},
{
- determinant: (data) => of(isTypeWithAliases(data, 'Cash', 'base')),
- extension: () => of({ template: this.sourceCashTemplate }),
+ determinant: (data) => of(isTypeWithAliases(data, 'CurrencySymbolicCode', 'base')),
+ extension: () =>
+ this.fetchSourcesService.sources$.pipe(
+ map((sources) => ({
+ options: sources.map((source) => ({
+ label: source.name,
+ value: source.id,
+ details: source,
+ })),
+ isIdentifier: true,
+ })),
+ ),
+ },
+ {
+ determinant: (data) => of(isTypeWithAliases(data, 'WalletID', 'deposit')),
+ extension: () =>
+ this.domainStoreService.getLimitedObjects('wallet_config').value$.pipe(
+ map((objects) => ({
+ options: objects.map((obj) => getDomainObjectOption(obj)),
+ isIdentifier: true,
+ })),
+ ),
},
];
create() {
- const { body: sourceCash, ...value } = this.control.value;
- this.fetchSourcesService.sources$
+ const value = this.control.value;
+ combineLatest([
+ this.fetchSourcesService.sources$.pipe(first()),
+ this.thriftRepositoryClientService.CheckoutObject(
+ { head: {} },
+ { wallet_config: { id: value.wallet_id } },
+ ),
+ ])
.pipe(
- first(),
map(
- (sources) =>
- sources.find((s) => s.id === sourceCash.sourceId).currency_symbolic_code,
- ),
- switchMap((symbolicCode) =>
- this.depositManagementService.Create(
- {
- ...value,
- source_id: sourceCash.sourceId,
- body: {
- amount: sourceCash.amount,
- currency: { symbolic_code: symbolicCode },
- },
- },
- new Map(),
- ),
+ ([sources, wallet]): DepositParams => ({
+ ...value,
+ party_id: wallet.object.wallet_config.data.party_ref.id,
+ source_id: sources.find((s) => s.id === value.body.currency.symbolic_code)
+ ?.id,
+ }),
),
+ tapLog(),
+ switchMap((params) => this.depositManagementService.Create(params, new Map())),
progressTo(this.progress$),
- takeUntilDestroyed(this.destroyRef),
+ takeUntilDestroyed(this.dr),
)
.subscribe({
next: () => this.closeWithSuccess(),
@@ -81,7 +101,8 @@ export class CreateDepositDialogComponent extends DialogSuperclass;
+ source_id: '___AUTO___',
+ party_id: '___AUTO___',
+ } as DepositParams;
}
}
diff --git a/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.module.ts b/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.module.ts
index c3cc97692..35c38c783 100644
--- a/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.module.ts
+++ b/src/app/deposits/components/create-deposit-dialog/create-deposit-dialog.module.ts
@@ -12,7 +12,6 @@ import { DialogModule } from '@vality/matez';
import { CurrencySourceFieldComponent } from '~/components/currency-source-field';
import { FistfulThriftFormComponent } from '~/components/fistful-thrift-form';
-import { SourceCashFieldComponent } from '~/components/source-cash-field';
import { UserInfoBasedIdGeneratorModule } from '~/services';
import { CreateDepositDialogComponent } from './create-deposit-dialog.component';
@@ -31,7 +30,6 @@ import { CreateDepositDialogComponent } from './create-deposit-dialog.component'
DialogModule,
CurrencySourceFieldComponent,
FistfulThriftFormComponent,
- SourceCashFieldComponent,
],
declarations: [CreateDepositDialogComponent],
})
diff --git a/src/app/payments/payments.component.html b/src/app/payments/payments.component.html
index 82c4a5659..4867c7b2f 100644
--- a/src/app/payments/payments.component.html
+++ b/src/app/payments/payments.component.html
@@ -43,7 +43,6 @@
(selectedChange)="selected$.next($event)"
(update)="reload($event ?? {})"
>
-