return also start_date and end_date timestamp for decay calculation

This commit is contained in:
Dario Rekowski on RockPI 2021-06-29 08:58:24 +00:00
parent ee67f60652
commit 08f1aefcf5
2 changed files with 19 additions and 4 deletions

View File

@ -98,7 +98,12 @@ class StateBalancesTable extends AppTable
// if start date for decay is after enddate, we also just return input // if start date for decay is after enddate, we also just return input
if($decayStartDate === null || $decayStartDate >= $endDate) { if($decayStartDate === null || $decayStartDate >= $endDate) {
if($withInterval) { if($withInterval) {
return ['balance' => $startBalance, 'interval' => new \DateInterval('PT0S')]; return [
'balance' => $startBalance,
'interval' => new \DateInterval('PT0S'),
'start_date' => $startDate->getTimestamp(),
'end_date' => $startDate->getTimestamp()
];
} else { } else {
return $startBalance; return $startBalance;
} }
@ -118,7 +123,12 @@ class StateBalancesTable extends AppTable
} }
$decay = $state_balance->partDecay($endDate); $decay = $state_balance->partDecay($endDate);
if($withInterval) { if($withInterval) {
return ['balance' => $decay, 'interval' => $interval]; return [
'balance' => $decay,
'interval' => $interval,
'start_date' => $state_balance->record_date->getTimestamp(),
'end_date' => $endDate->getTimestamp()
];
} else { } else {
return $decay; return $decay;
} }

View File

@ -196,7 +196,9 @@ class TransactionsTable extends Table
{ {
$final_transaction['decay'] = [ $final_transaction['decay'] = [
'balance' => $balance, 'balance' => $balance,
'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds') 'decay_duration' => $calculated_decay['interval']->format('%a days, %H hours, %I minutes, %S seconds'),
'decay_start' => $calculated_decay['start_date'],
'decay_end' => $calculated_decay['end_date']
]; ];
} }
} }
@ -251,9 +253,10 @@ class TransactionsTable extends Table
$final_transactions[] = $final_transaction; $final_transactions[] = $final_transaction;
if($i == $stateUserTransactionsCount-1 && $decay == true) { if($i == $stateUserTransactionsCount-1 && $decay == true) {
$now = new FrozenTime();
$calculated_decay = $stateBalancesTable->calculateDecay( $calculated_decay = $stateBalancesTable->calculateDecay(
$su_transaction->balance, $su_transaction->balance,
$su_transaction->balance_date, new FrozenTime(), true); $su_transaction->balance_date, $now, true);
$decay_start_date = $stateBalancesTable->getDecayStartDateCached(); $decay_start_date = $stateBalancesTable->getDecayStartDateCached();
$duration = $su_transaction->balance_date->timeAgoInWords(); $duration = $su_transaction->balance_date->timeAgoInWords();
if($decay_start_date > $su_transaction->balance_date) { if($decay_start_date > $su_transaction->balance_date) {
@ -265,6 +268,8 @@ class TransactionsTable extends Table
'type' => 'decay', 'type' => 'decay',
'balance' => $balance, 'balance' => $balance,
'decay_duration' => $duration, 'decay_duration' => $duration,
'decay_start' => $calculated_decay['start_date'],
'decay_end' => $calculated_decay['end_date'],
'memo' => '' 'memo' => ''
]; ];
} }