diff --git a/community_server/src/Controller/StateBalancesController.php b/community_server/src/Controller/StateBalancesController.php
index a44630e60..9357abddd 100644
--- a/community_server/src/Controller/StateBalancesController.php
+++ b/community_server/src/Controller/StateBalancesController.php
@@ -191,9 +191,12 @@ class StateBalancesController extends AppController
$current_state_balance = null;
$cursor = 0;
$transactions_reversed = array_reverse($transactions);
+ $decay_transactions = [];
$maxI = count($transactions_reversed);
+
foreach($transactions_reversed as $i => $transaction) {
if(!isset($transaction['transaction_id'])) {
+ //echo "missing transaction
";
continue;
}
$transaction_id = $transaction['transaction_id'];
@@ -219,17 +222,11 @@ class StateBalancesController extends AppController
$state_balance->amount = $prev->balance;
$state_balance->record_date = $prev->balance_date;
$diff_amount = $state_balance->partDecay($current->balance_date);
- /* echo "prev date: $prev->balance_date, current date: $current->balance_date, interval: ";
- var_dump($interval);
- echo "
";
- echo "prev balance: $prev->balance
diff: $diff_amount
";
- echo "current balance: $current->balance
";
- *
- */
+
//echo $interval->format('%R%a days');
$decay_transaction = [
'type' => 'decay',
- 'balance' => -($prev->balance - $diff_amount),
+ 'balance' => -intval($prev->balance - $diff_amount),
'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'),
'memo' => ''
];
@@ -237,8 +234,9 @@ class StateBalancesController extends AppController
}
if($decay_transaction) {
- array_splice($transactions_reversed, $i + $cursor, 0, [$decay_transaction]);
- $cursor++;
+ $decay_transactions[] = $decay_transaction;
+ //array_splice($transactions_reversed, $i + $cursor, 0, [$decay_transaction]);
+ //$cursor++;
}
if($i == $maxI-1) {
$stateUserTransaction = $stateUserTransactionsTable
@@ -248,18 +246,24 @@ class StateBalancesController extends AppController
//var_dump($stateUserTransaction);
$state_balance->amount = $stateUserTransaction->balance;
$state_balance->record_date = $stateUserTransaction->balance_date;
- $transactions_reversed[] = [
+ $decay_transactions[] = [
+ //$transactions_reversed[] = [
'type' => 'decay',
- 'balance' => -($stateUserTransaction->balance - $state_balance->decay),
+ 'balance' => -intval($stateUserTransaction->balance - $state_balance->decay),
'decay_duration' => $stateUserTransaction->balance_date->timeAgoInWords(),
'memo' => ''
];
}
}
+ $final_transactions = [];
+ foreach($transactions_reversed as $i => $transaction) {
+ $final_transactions[] = $transaction;
+ $final_transactions[] = $decay_transactions[$i];
+ }
// for debugging
$calculated_balance = 0;
- foreach($transactions_reversed as $tr) {
+ foreach($final_transactions as $tr) {
if($tr['type'] == 'send') {
$calculated_balance -= intval($tr['balance']);
} else {
@@ -268,7 +272,7 @@ class StateBalancesController extends AppController
}
$this->set('calculated_balance', $calculated_balance);
- $this->set('transactions', array_reverse($transactions_reversed));
+ $this->set('transactions', array_reverse($final_transactions));
$this->set('transactionExecutingCount', $session->read('Transactions.executing'));
$this->set('balance', $session->read('StateUser.balance'));
$this->set('timeUsed', microtime(true) - $startTime);
diff --git a/community_server/src/Model/Entity/StateBalance.php b/community_server/src/Model/Entity/StateBalance.php
index 8e0d42942..0860d15b7 100644
--- a/community_server/src/Model/Entity/StateBalance.php
+++ b/community_server/src/Model/Entity/StateBalance.php
@@ -64,7 +64,7 @@ class StateBalance extends Entity
return $this->amount;
}
//return $this->amount;
- return $this->amount * pow(0.99999997802044727, $decay_duration);
+ return intval($this->amount * pow(0.99999997802044727, $decay_duration));
}
public function partDecay($target_date)
@@ -74,7 +74,7 @@ class StateBalance extends Entity
return $this->amount;
}
//return 0;
- return $this->amount * pow(0.99999997802044727, $decay_duration);
+ return intval($this->amount * pow(0.99999997802044727, $decay_duration));
}
public function decayDuration($target_date)
diff --git a/community_server/src/Model/Table/StateBalancesTable.php b/community_server/src/Model/Table/StateBalancesTable.php
index ce3b218e1..0aac39f66 100644
--- a/community_server/src/Model/Table/StateBalancesTable.php
+++ b/community_server/src/Model/Table/StateBalancesTable.php
@@ -195,12 +195,12 @@ class StateBalancesTable extends Table
if($transaction->transaction_type_id == 1) { // creation
$temp = $transaction->transaction_creations[0];
- $balance_temp = $this->newEntity();
+ /*$balance_temp = $this->newEntity();
$balance_temp->amount = $temp->amount;
$balance_temp->record_date = $temp->target_date;
-
- $amount = $balance_temp->partDecay($transaction->received);
- $amount_date = $transaction->received;
+ */
+ $amount = intval($temp->amount);//$balance_temp->partDecay($transaction->received);
+ $amount_date = $temp->target_date;
//$amount_date =
} else if($transaction->transaction_type_id == 2) { // transfer