From 7da24267d0ef7b968c70b64921cf2e6d90cd21dc Mon Sep 17 00:00:00 2001 From: Dario Rekowski on RockPI Date: Mon, 13 Jan 2020 15:59:21 +0000 Subject: [PATCH] update multi creation with more comfort --- .../TransactionCreationsController.php | 31 +++++++++++- .../TransactionCreations/create_multi.ctp | 50 ++++++++++++++++--- 2 files changed, 71 insertions(+), 10 deletions(-) diff --git a/src/Controller/TransactionCreationsController.php b/src/Controller/TransactionCreationsController.php index 7a8c6e29e..8039a00eb 100644 --- a/src/Controller/TransactionCreationsController.php +++ b/src/Controller/TransactionCreationsController.php @@ -252,6 +252,8 @@ class TransactionCreationsController extends AppController if ($this->request->is('post')) { $requestData = $this->request->getData(); + //var_dump($requestData); + //die("miau"); // memo // amount $memo = $requestData['memo']; @@ -263,19 +265,34 @@ class TransactionCreationsController extends AppController $this->Flash->error(__('no user choosen')); } else { $users = $requestData['user']; + if(isset($requestData['user_pending'])) { + $pendings = $requestData['user_pending']; + } else { + $pendings = []; + } //var_dump(array_keys($users)); $receiverUsers = $stateUserTable ->find('all') ->where(['id IN' => array_keys($users)]) - ->select(['public_key', 'email']) + ->select(['public_key', 'email', 'id']) ->contain(false); $transactions = []; //var_dump($receiverUsers); foreach($receiverUsers as $receiverUser) { + $localAmountCent = $amountCent; + $id = $receiverUser->id; + if($requestData['user_amount'][$id] != '') { + $localAmountCent = $this->GradidoNumber->parseInputNumberToCentNumber($requestData['user_amount'][$id]); + } + if(isset($pendings[$id])) { + $pendings[$id] += $localAmountCent; + } else { + $pendings[$id] = $localAmountCent; + } $pubKeyHex = bin2hex(stream_get_contents($receiverUser->public_key)); $identHash = TransactionCreation::DRMakeStringHash($receiverUser->email); $builderResult = TransactionCreation::build( - $amountCent, + $localAmountCent, $memo, $pubKeyHex, $identHash @@ -284,6 +301,16 @@ class TransactionCreationsController extends AppController array_push($transactions, base64_encode($builderResult['transactionBody']->serializeToString())); } } + /*echo "pendings: "; + var_dump($pendings); + echo "
";*/ + foreach($possibleReceiver as $i => $_possibleReceiver) { + $id = $_possibleReceiver['id']; + if(isset($pendings[$id])) { + $possibleReceiver[$i]['pending'] = $pendings[$id]; + } + } + $this->set('possibleReceiver', $possibleReceiver); $creationTransactionCount = count($transactions); if($creationTransactionCount > 0) { $user_balance = 0; diff --git a/src/Template/TransactionCreations/create_multi.ctp b/src/Template/TransactionCreations/create_multi.ctp index 06edbed0a..635c1b869 100644 --- a/src/Template/TransactionCreations/create_multi.ctp +++ b/src/Template/TransactionCreations/create_multi.ctp @@ -22,17 +22,36 @@ $this->assign('title', __('Schöpfungstransaktion')); } .grd_big_checkbox { - border:1px dotted grey; + border:1px dotted black; + padding:4px; margin-bottom:5px; } + .grd_margin-bottom_50 { + margin-bottom:50px; + } + .grd_smaller { font-size:smaller; color:blue; } + .color-orange { + color:#6400d9; + } + + .flowing-bottom { + position:fixed; + bottom:0px; + padding-left:20px; + padding-right:20px; + padding-top:10px; + padding-bottom:10px; + background-color:rgba(255,255,255,0.5); + } + -
+
@@ -43,25 +62,38 @@ $this->assign('title', __('Schöpfungstransaktion')); Form->control('memo'); ?> Form->control('amount'); ?> 10000000) { $disable = 'disabled'; } ?>
+ + Form->hidden('user_pending[' . $possibleReceiver['id'] . ']', ['value' => $possibleReceiver['pending']] ) ?> + Form->checkbox('user[' .$possibleReceiver['id'] . ']', ['value' => $possibleReceiver['id'], 'hiddenField' => false, $disable]); ?> - + <>
+
+ Form->text('user_amount[' . $possibleReceiver['id'] . ']', ['placeholder' => __('Für benutzerdefinierten Betrag'), 'type' => 'number', 'step' => '0.01', $disable]); ?> GDD +
+ + + Bereits als Transaktion angelegt: element('printGradido', ['number' => $possibleReceiver['pending']]);?> + +
+ - In diesem Monat bereits geschöpft: element('printGradido', ['number' => $possibleReceiver['amount']]);?> + In diesem Monat bereits geschöpft: element('printGradido', ['number' => $possibleReceiver['amount']]);?> +
- +
@@ -69,8 +101,10 @@ $this->assign('title', __('Schöpfungstransaktion')); - Form->button(__('Transaktion(n) abschließen'), ['name' => 'next', 'class' => 'grd-form-bn grd-form-bn-succeed grd_clickable grd-width-200']) ?> - Form->button(__('Weitere Transaktion erstellen'), ['name' => 'add', 'class' => 'grd-form-bn grd_clickable grd-width-200']) ?> +
+ Form->button(__('Transaktion(n) abschließen'), ['name' => 'next', 'class' => 'grd-form-bn grd-form-bn-succeed grd_clickable grd-width-200']) ?> + Form->button(__('Weitere Transaktion erstellen'), ['name' => 'add', 'class' => 'grd-form-bn grd_clickable grd-width-200']) ?> +
Form->end() ?>