From 8413ca56f7e5b3125ab89cfd86f3f6d9d6382593 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 7 Jul 2021 12:48:58 +0000 Subject: [PATCH] flag decay start blog with additional field in decay --- .../src/Model/Table/TransactionsTable.php | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 8fcd81489..3a7555ba8 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -138,6 +138,7 @@ class TransactionsTable extends Table $stateUsersTable = TableRegistry::getTableLocator()->get('StateUsers'); $stateBalancesTable = TableRegistry::getTableLocator()->get('StateBalances'); + $transactionsTable = TableRegistry::getTableLocator()->get('Transactions'); $transaction_ids = []; $involved_user_ids = []; @@ -162,11 +163,15 @@ class TransactionsTable extends Table $state_balance = $stateBalancesTable->newEntity(); $final_transactions = []; + $decay_start_transaction = $transactionsTable->find()->where(['transaction_type_id' => 9]); + $decay_start_transaction_id = 0; + if($decay_start_transaction->count()) { + $decay_start_transaction_id = $decay_start_transaction->first()->id; + } + $decay_start_time = $stateBalancesTable->getDecayStartDateCached()->getTimestamp(); foreach($stateUserTransactions as $i => $su_transaction) { - - // sender or receiver when user has sended money // group name if creation // type: gesendet / empfangen / geschöpft @@ -187,7 +192,8 @@ class TransactionsTable extends Table } if($prev) { - if($prev->balance > 0) { + if($prev->balance > 0) + { $current = $su_transaction; $calculated_decay = $stateBalancesTable->calculateDecay($prev->balance, $prev->balance_date, $current->balance_date, true); $balance = floatval($prev->balance - $calculated_decay['balance']); @@ -199,7 +205,19 @@ class TransactionsTable extends Table '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'] - ]; + ]; + if($prev->transaction_id < $decay_start_transaction_id && + $current->transaction_id > $decay_start_transaction_id) { + $final_transaction['decay']['decay_start_block'] = $decay_start_time; + } + // hint: use transaction id + /*if($calculated_decay['start_date'] < $decay_start_time && $calculated_decay['end_date'] > $decay_start_time) { + $final_transaction['decay']['decay_start_block'] = $decay_start_time; + } else { + echo "start block: " . $decay_start_time . "
"; + echo "start date: " . $calculated_decay['start_date'] . "
"; + echo "end date: " . $calculated_decay['end_date']. "
"; + }*/ } } }