1010-type cash_flow_context () :: #{
1111 operation := refund | payment ,
1212 provision_terms := dmsl_domain_thrift :'PaymentsProvisionTerms' (),
13- party := {party_id (), party ()},
14- shop := {shop_id (), shop ()},
13+ party := {party_config_ref (), party ()},
14+ shop := {shop_config_ref (), shop ()},
1515 route := route (),
1616 payment := payment (),
1717 provider := provider (),
2929-export ([collect_cashflow /2 ]).
3030
3131-type party () :: dmsl_domain_thrift :'PartyConfig' ().
32- -type party_id () :: dmsl_domain_thrift :'PartyID ' ().
32+ -type party_config_ref () :: dmsl_domain_thrift :'PartyConfigRef ' ().
3333-type shop () :: dmsl_domain_thrift :'ShopConfig' ().
34- -type shop_id () :: dmsl_domain_thrift :'ShopConfigID ' ().
34+ -type shop_config_ref () :: dmsl_domain_thrift :'ShopConfigRef ' ().
3535-type route () :: dmsl_domain_thrift :'PaymentRoute' ().
3636-type payment () :: dmsl_domain_thrift :'InvoicePayment' ().
3737-type refund () :: dmsl_domain_thrift :'InvoicePaymentRefund' ().
@@ -70,20 +70,24 @@ collect_allocation_cash_flow(
7070) ->
7171 lists :foldl (
7272 fun (? allocation_trx (_ID , Target , Amount ), Acc ) ->
73- ? allocation_trx_target_shop (PartyID , ShopID ) = Target ,
74- {PartyID , TargetParty } = hg_party :get_party (PartyID ),
75- {ShopID , TargetShop } = hg_party :get_shop (ShopID , TargetParty , Revision ),
73+ ? allocation_trx_target_shop (PartyConfigRef , ShopConfigRef ) = Target ,
74+ {PartyConfigRef , TargetParty } = hg_party :get_party (PartyConfigRef ),
75+ {# domain_ShopConfigRef {id = ShopConfigID } = ShopConfigRef , TargetShop } = hg_party :get_shop (
76+ ShopConfigRef , PartyConfigRef , Revision
77+ ),
7678 VS1 = VS0 #{
77- party_id => PartyID ,
78- shop_id => ShopID ,
79+ party_config_ref => PartyConfigRef ,
80+ shop_id => ShopConfigID ,
7981 cost => Amount
8082 },
8183 AllocationPaymentInstitution =
8284 get_cashflow_payment_institution (Shop , VS1 , Revision ),
8385 construct_transaction_cashflow (
8486 Amount ,
8587 AllocationPaymentInstitution ,
86- Context #{party => {PartyID , TargetParty }, shop => {ShopID , TargetShop }}
88+ Context #{
89+ party => {PartyConfigRef , TargetParty }, shop => {ShopConfigRef , TargetShop }
90+ }
8791 ) ++ Acc
8892 end ,
8993 [],
@@ -110,14 +114,20 @@ construct_transaction_cashflow(
110114 end ,
111115 MerchantCashflowSelector = get_terms_cashflow (OpType , MerchantPaymentsTerms1 ),
112116 MerchantCashflow = get_selector_value (merchant_payment_fees , MerchantCashflowSelector ),
113- AccountMap = hg_accounting :collect_account_map (make_collect_account_context (PaymentInstitution , Context )),
117+ AccountMap = hg_accounting :collect_account_map (
118+ make_collect_account_context (PaymentInstitution , Context )
119+ ),
114120 construct_final_cashflow (MerchantCashflow , #{operation_amount => Amount }, AccountMap ).
115121
116122construct_provider_cashflow (PaymentInstitution , Context = #{provision_terms := ProvisionTerms }) ->
117123 ProviderCashflowSelector = get_provider_cashflow_selector (ProvisionTerms ),
118124 ProviderCashflow = get_selector_value (provider_payment_cash_flow , ProviderCashflowSelector ),
119- AccountMap = hg_accounting :collect_account_map (make_collect_account_context (PaymentInstitution , Context )),
120- construct_final_cashflow (ProviderCashflow , #{operation_amount => get_amount (Context )}, AccountMap ).
125+ AccountMap = hg_accounting :collect_account_map (
126+ make_collect_account_context (PaymentInstitution , Context )
127+ ),
128+ construct_final_cashflow (
129+ ProviderCashflow , #{operation_amount => get_amount (Context )}, AccountMap
130+ ).
121131
122132construct_final_cashflow (Cashflow , Context , AccountMap ) ->
123133 hg_cashflow :finalize (Cashflow , Context , AccountMap ).
@@ -140,7 +150,9 @@ get_amount(#{payment := #domain_InvoicePayment{cost = Cost}}) ->
140150
141151get_provider_cashflow_selector (# domain_PaymentsProvisionTerms {cash_flow = ProviderCashflowSelector }) ->
142152 ProviderCashflowSelector ;
143- get_provider_cashflow_selector (# domain_PaymentRefundsProvisionTerms {cash_flow = ProviderCashflowSelector }) ->
153+ get_provider_cashflow_selector (# domain_PaymentRefundsProvisionTerms {
154+ cash_flow = ProviderCashflowSelector
155+ }) ->
144156 ProviderCashflowSelector .
145157
146158get_terms_cashflow (payment , MerchantPaymentsTerms ) ->
@@ -161,7 +173,7 @@ get_selector_value(Name, Selector) ->
161173 hg_accounting :collect_account_context ().
162174make_collect_account_context (PaymentInstitution , #{
163175 payment := Payment ,
164- party := {PartyID , _ },
176+ party := {PartyConfigRef , _ },
165177 shop := Shop ,
166178 route := Route ,
167179 provider := Provider ,
@@ -170,7 +182,7 @@ make_collect_account_context(PaymentInstitution, #{
170182}) ->
171183 #{
172184 payment => Payment ,
173- party_id => PartyID ,
185+ party_config_ref => PartyConfigRef ,
174186 shop => Shop ,
175187 route => Route ,
176188 payment_institution => PaymentInstitution ,
0 commit comments