From b10886a8d359c1fd2b701722113674705c40d440 Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Wed, 5 May 2021 15:30:24 +0000 Subject: [PATCH] move gradido to float into view element --- .../src/Controller/AppRequestsController.php | 40 +++++++++++++------ .../src/Model/Entity/StateBalance.php | 7 +--- .../src/Model/Table/StateUsersTable.php | 4 +- .../src/Model/Table/TransactionsTable.php | 8 ++-- .../src/Template/AppRequests/get_balance.ctp | 11 +++++ .../AppRequests/list_transactions.ctp | 17 ++++++++ .../src/Template/Element/centToFloat.ctp | 15 +++++++ 7 files changed, 78 insertions(+), 24 deletions(-) create mode 100644 community_server/src/Template/AppRequests/get_balance.ctp create mode 100644 community_server/src/Template/AppRequests/list_transactions.ctp create mode 100644 community_server/src/Template/Element/centToFloat.ctp diff --git a/community_server/src/Controller/AppRequestsController.php b/community_server/src/Controller/AppRequestsController.php index 17105e2b9..948d09350 100644 --- a/community_server/src/Controller/AppRequestsController.php +++ b/community_server/src/Controller/AppRequestsController.php @@ -268,7 +268,7 @@ class AppRequestsController extends AppController public function getBalance($session_id = 0) { - + $this->viewBuilder()->setLayout('ajax'); $login_result = $this->requestLogin($session_id, false); if($login_result !== true) { return $this->returnJson($login_result); @@ -284,12 +284,13 @@ class AppRequestsController extends AppController return $this->returnJson(['state' => 'success', 'balance' => 0]); } $now = new FrozenTime(); - return $this->returnJson([ + $body = [ 'state' => 'success', - 'balance' => $state_balance->amount_float, + 'balance' => $state_balance->amount, 'decay' => $state_balance->partDecay($now), 'decay_date' => $now - ]); + ]; + $this->set('body', $body); } public function listTransactions($page = 1, $count = 25, $orderDirection = 'ASC', $session_id = 0) @@ -337,14 +338,29 @@ class AppRequestsController extends AppController $transactions = array_reverse($transactions); } } - return $this->returnJson([ - 'state' => 'success', - 'transactions' => $transactions, - 'transactionExecutingCount' => $session->read('Transactions.executing'), - 'count' => count($transactions), - 'gdtSum' => floatval($gdtSum) / 100.0, - 'timeUsed' => microtime(true) - $startTime - ]); + + $state_balance = $stateBalancesTable->find()->where(['state_user_id' => $user['id']])->first(); + + $body = [ + 'state' => 'success', + 'transactions' => $transactions, + 'transactionExecutingCount' => $session->read('Transactions.executing'), + 'count' => count($transactions), + 'gdtSum' => $gdtSum, + 'timeUsed' => microtime(true) - $startTime + ]; + $now = new FrozenTime(); + $body['decay_date'] = $now; + + if(!$state_balance) { + $body['balance'] = 0; + $body['decay'] = 0; + } else { + $body['balance'] = $state_balance->amount; + $body['decay'] = $state_balance->partDecay($now); + } + + $this->set('body', $body); } private function acquireAccessToken($session_id) diff --git a/community_server/src/Model/Entity/StateBalance.php b/community_server/src/Model/Entity/StateBalance.php index 4303ba1ac..7d595653e 100644 --- a/community_server/src/Model/Entity/StateBalance.php +++ b/community_server/src/Model/Entity/StateBalance.php @@ -68,12 +68,7 @@ class StateBalance extends Entity return intval($this->amount * pow(0.99999997802044727, $decay_duration)); } - - protected function _getAmountFloat() - { - return Number::format(floatval($this->amount) / 10000.0, ['precision' => 2]); - } - + public function partDecay($target_date) { $decay_duration = intval($this->convertToTimestamp($target_date) - $this->convertToTimestamp($this->record_date)); diff --git a/community_server/src/Model/Table/StateUsersTable.php b/community_server/src/Model/Table/StateUsersTable.php index f36f84d82..5b01609f3 100644 --- a/community_server/src/Model/Table/StateUsersTable.php +++ b/community_server/src/Model/Table/StateUsersTable.php @@ -122,9 +122,9 @@ class StateUsersTable extends Table // exchange back $involvedUserIds = array_flip($involvedUser_temp); $involvedUser = $this->find('all', [ - 'contain' => false, + 'contain' => [], 'where' => ['id IN' => $involvedUserIds], - 'fields' => ['id', 'first_name', 'last_name', 'email'] + 'fields' => ['id', 'first_name', 'last_name', 'email'], ]); //var_dump($involvedUser->toArray()); $involvedUserIndices = []; diff --git a/community_server/src/Model/Table/TransactionsTable.php b/community_server/src/Model/Table/TransactionsTable.php index 6cd715874..c6d3477d3 100644 --- a/community_server/src/Model/Table/TransactionsTable.php +++ b/community_server/src/Model/Table/TransactionsTable.php @@ -188,7 +188,7 @@ class TransactionsTable extends Table //echo "prev balance: " . $prev->balance . ", diff_amount: $diff_amount, summe: " . (-intval($prev->balance - $diff_amount)) . "
"; $final_transactions[] = [ 'type' => 'decay', - 'balance' => Number::format(floatval(-intval($prev->balance - $diff_amount)) / 10000.0, ['precision' => 2]), + 'balance' => floatval(-intval($prev->balance - $diff_amount)), 'decay_duration' => $interval->format('%a days, %H hours, %I minutes, %S seconds'), 'memo' => '' ]; @@ -212,7 +212,7 @@ class TransactionsTable extends Table 'type' => 'creation', 'transaction_id' => $transaction->id, 'date' => $creation->target_date, - 'balance' => $creation->amount_float, + 'balance' => $creation->amount, 'memo' => $transaction->memo ]; } else if($su_transaction->transaction_type_id == 2) { // transfer or send coins @@ -245,7 +245,7 @@ class TransactionsTable extends Table 'type' => $type, 'transaction_id' => $sendCoins->transaction_id, 'date' => $transaction->received, - 'balance' => $sendCoins->amount_float, + 'balance' => $sendCoins->amount, 'memo' => $transaction->memo, 'pubkey' => $other_user_public ]; @@ -256,7 +256,7 @@ class TransactionsTable extends Table $state_balance->record_date = $su_transaction->balance_date; $final_transactions[] = [ 'type' => 'decay', - 'balance' => Number::format(floatval(-intval($su_transaction->balance - $state_balance->decay)) / 10000.0, ['precision' => 2]), + 'balance' => floatval(-intval($su_transaction->balance - $state_balance->decay)), 'decay_duration' => $su_transaction->balance_date->timeAgoInWords(), 'memo' => '' ]; diff --git a/community_server/src/Template/AppRequests/get_balance.ctp b/community_server/src/Template/AppRequests/get_balance.ctp new file mode 100644 index 000000000..618ec4c2e --- /dev/null +++ b/community_server/src/Template/AppRequests/get_balance.ctp @@ -0,0 +1,11 @@ +element('centToFloat', ['cent' => $body['balance'], 'precision' => 4]); +$body['decay'] = $this->element('centToFloat', ['cent' => $body['decay'], 'precision' => 4]); +?> \ No newline at end of file diff --git a/community_server/src/Template/AppRequests/list_transactions.ctp b/community_server/src/Template/AppRequests/list_transactions.ctp new file mode 100644 index 000000000..f829b5f16 --- /dev/null +++ b/community_server/src/Template/AppRequests/list_transactions.ctp @@ -0,0 +1,17 @@ +element('centToFloat', ['cent' => $body['balance'], 'precision' => 4]); +$body['decay'] = $this->element('centToFloat', ['cent' => $body['decay'], 'precision' => 4]); +$body['gdtSum'] = $this->element('centToFloat', ['cent' => $body['gdtSum'], 'precision' => 2]); + +foreach($body['transactions'] as $i => $transaction) { + $body['transactions'][$i]['balance'] = $this->element('centToFloat', ['cent' => $transaction['balance'], 'precision' => 4]); +} + +?> \ No newline at end of file diff --git a/community_server/src/Template/Element/centToFloat.ctp b/community_server/src/Template/Element/centToFloat.ctp new file mode 100644 index 000000000..40e3c4754 --- /dev/null +++ b/community_server/src/Template/Element/centToFloat.ctp @@ -0,0 +1,15 @@ + 0) { + $transformAmount = floor($cent / pow(10, $cut_places)); +} +echo $transformAmount / pow(10, $precision - $cut_places); +