diff --git a/apps/party_management/src/pm_provider.erl b/apps/party_management/src/pm_provider.erl index d5c745c..3af4337 100644 --- a/apps/party_management/src/pm_provider.erl +++ b/apps/party_management/src/pm_provider.erl @@ -57,7 +57,8 @@ reduce_provision_term_set(ProvisionTermSet, VS, DomainRevision) -> wallet = pm_maybe:apply( fun(X) -> reduce_wallet_provision(X, VS, DomainRevision) end, ProvisionTermSet#domain_ProvisionTermSet.wallet - ) + ), + extension = ProvisionTermSet#domain_ProvisionTermSet.extension }. reduce_payment_terms(undefined = PaymentTerms, _VS, _DomainRevision) -> @@ -172,19 +173,22 @@ merge_provision_term_sets( #domain_ProvisionTermSet{ payments = PPayments, recurrent_paytools = PRecurrents, - wallet = PWallet + wallet = PWallet, + extension = PExtension }, #domain_ProvisionTermSet{ payments = TPayments, % TODO: Allow to define recurrent terms in terminal recurrent_paytools = _TRecurrents, - wallet = TWallet + wallet = TWallet, + extension = TExtension } ) -> #domain_ProvisionTermSet{ payments = merge_payment_terms(PPayments, TPayments), recurrent_paytools = PRecurrents, - wallet = merge_wallet_terms(PWallet, TWallet) + wallet = merge_wallet_terms(PWallet, TWallet), + extension = merge_extension_terms(PExtension, TExtension) }; merge_provision_term_sets(ProviderTerms, TerminalTerms) -> pm_utils:select_defined(TerminalTerms, ProviderTerms). @@ -253,6 +257,20 @@ merge_wallet_terms( merge_wallet_terms(ProviderTerms, TerminalTerms) -> pm_utils:select_defined(TerminalTerms, ProviderTerms). +merge_extension_terms( + #domain_ExtendedProvisionTerms{ + skip_recurrent = PSkipRecurrent + }, + #domain_ExtendedProvisionTerms{ + skip_recurrent = TSkipRecurrent + } +) -> + #domain_ExtendedProvisionTerms{ + skip_recurrent = pm_utils:select_defined(TSkipRecurrent, PSkipRecurrent) + }; +merge_extension_terms(ProviderTerms, TerminalTerms) -> + pm_utils:select_defined(TerminalTerms, ProviderTerms). + merge_withdrawal_terms( #domain_WithdrawalProvisionTerms{ allow = PAllow, diff --git a/apps/party_management/test/pm_party_tests_SUITE.erl b/apps/party_management/test/pm_party_tests_SUITE.erl index 55ec490..ae4fd6f 100644 --- a/apps/party_management/test/pm_party_tests_SUITE.erl +++ b/apps/party_management/test/pm_party_tests_SUITE.erl @@ -313,6 +313,9 @@ compute_provider_ok(C) -> }, recurrent_paytools = #domain_RecurrentPaytoolsProvisionTerms{ cash_value = {value, ?cash(1000, <<"RUB">>)} + }, + extension = #domain_ExtendedProvisionTerms{ + skip_recurrent = true } } } = pm_client_party:compute_provider(?prv(1), DomainRevision, Varset, Client). @@ -374,6 +377,9 @@ compute_provider_terminal_terms_ok(C) -> }, recurrent_paytools = #domain_RecurrentPaytoolsProvisionTerms{ cash_value = {value, ?cash(1000, <<"RUB">>)} + }, + extension = #domain_ExtendedProvisionTerms{ + skip_recurrent = true } } = pm_client_party:compute_provider_terminal_terms( ?prv(1), ?trm(1), DomainRevision, Varset, Client @@ -1272,6 +1278,9 @@ construct_domain_fixture(PartyRef, PrevRev) -> then_ = {value, ?cash(1000, <<"USD">>)} } ]} + }, + extension = #domain_ExtendedProvisionTerms{ + skip_recurrent = true } } } diff --git a/compose.yaml b/compose.yaml index eb52b9f..e20a0f4 100644 --- a/compose.yaml +++ b/compose.yaml @@ -21,7 +21,7 @@ services: command: /sbin/init dmt: - image: ghcr.io/valitydev/dominant-v2:sha-90f5fa2 + image: ghcr.io/valitydev/dominant-v2:sha-3ad3a22 command: /opt/dmt/bin/dmt foreground healthcheck: test: "/opt/dmt/bin/dmt ping" diff --git a/rebar.config b/rebar.config index 0b8656c..9269aad 100644 --- a/rebar.config +++ b/rebar.config @@ -32,7 +32,7 @@ {prometheus, "4.11.0"}, {prometheus_cowboy, "0.1.9"}, {woody, {git, "https://github.com/valitydev/woody_erlang.git", {tag, "v1.1.0"}}}, - {damsel, {git, "https://github.com/valitydev/damsel.git", {tag, "v2.2.17"}}}, + {damsel, {git, "https://github.com/valitydev/damsel.git", {tag, "v2.2.23"}}}, {payproc_errors, {git, "https://github.com/valitydev/payproc-errors-erlang.git", {branch, "master"}}}, {dmt_client, {git, "https://github.com/valitydev/dmt_client.git", {tag, "v2.0.3"}}}, {scoper, {git, "https://github.com/valitydev/scoper.git", {tag, "v1.1.0"}}}, diff --git a/rebar.lock b/rebar.lock index e1da49b..8b1e47a 100644 --- a/rebar.lock +++ b/rebar.lock @@ -13,7 +13,7 @@ {<<"ctx">>,{pkg,<<"ctx">>,<<"0.6.0">>},2}, {<<"damsel">>, {git,"https://github.com/valitydev/damsel.git", - {ref,"f831d3aa5fdfd0338b41af44d1eeffe810ca9708"}}, + {ref,"b5c1dc423365397d8c2d123ba5766147551f19cc"}}, 0}, {<<"dmt_client">>, {git,"https://github.com/valitydev/dmt_client.git",