accumulate amounts from coins in batch-deposit for policy
This commit is contained in:
parent
63b19fad0c
commit
949a91c38e
@ -688,12 +688,33 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
|
|||||||
struct TALER_EXCHANGEDB_Deposit);
|
struct TALER_EXCHANGEDB_Deposit);
|
||||||
for (unsigned int i = 0; i<dc.num_coins; i++)
|
for (unsigned int i = 0; i<dc.num_coins; i++)
|
||||||
{
|
{
|
||||||
if (GNUNET_OK !=
|
do {
|
||||||
(res = parse_coin (connection,
|
res = parse_coin (connection,
|
||||||
json_array_get (coins,
|
json_array_get (coins,
|
||||||
i),
|
i),
|
||||||
&dc,
|
&dc,
|
||||||
&dc.deposits[i])))
|
&dc.deposits[i]);
|
||||||
|
if (GNUNET_OK != res)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* If applicable, accumulate all contributions into the policy_details */
|
||||||
|
if (dc.has_policy)
|
||||||
|
{
|
||||||
|
/* FIXME: how doe deposit-fee and policy-fee interact? */
|
||||||
|
struct TALER_Amount amount_without_fee;
|
||||||
|
|
||||||
|
res = TALER_amount_subtract (&amount_without_fee,
|
||||||
|
&dc.deposits[i].amount_with_fee,
|
||||||
|
&dc.deposits[i].deposit_fee
|
||||||
|
);
|
||||||
|
res = TALER_amount_add (
|
||||||
|
&dc.policy_details.accumulated_total,
|
||||||
|
&dc.policy_details.accumulated_total,
|
||||||
|
&amount_without_fee);
|
||||||
|
}
|
||||||
|
} while(0);
|
||||||
|
|
||||||
|
if (GNUNET_OK != res)
|
||||||
{
|
{
|
||||||
for (unsigned int j = 0; j<i; j++)
|
for (unsigned int j = 0; j<i; j++)
|
||||||
TALER_denom_sig_free (&dc.deposits[j].coin.denom_sig);
|
TALER_denom_sig_free (&dc.deposits[j].coin.denom_sig);
|
||||||
@ -701,8 +722,6 @@ TEH_handler_batch_deposit (struct TEH_RequestContext *rc,
|
|||||||
GNUNET_JSON_parse_free (spec);
|
GNUNET_JSON_parse_free (spec);
|
||||||
return (GNUNET_NO == res) ? MHD_YES : MHD_NO;
|
return (GNUNET_NO == res) ? MHD_YES : MHD_NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: sum all contributions for the policy_details.accumulated_total */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dc.exchange_timestamp = GNUNET_TIME_timestamp_get ();
|
dc.exchange_timestamp = GNUNET_TIME_timestamp_get ();
|
||||||
|
Loading…
Reference in New Issue
Block a user