public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Kassa';
     if (isset($_POST['to_enter_transaction_view'])) {
         $errMsgs = CashRegisterEnterCardViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 $_SESSION['Stippers']['CashRegister']['user'] = UserDB::getFullUserByCardNumber($_POST['card_number']);
                 if (!$_SESSION['Stippers']['CashRegister']['user']) {
                     CashRegisterController::buildEnterCardView($page, true);
                     $page->data['CashRegisterEnterCardView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_card_form_error_message">Dit kaartnummer is niet gekoppeld aan een gebruiker.</h2>';
                 } else {
                     CashRegisterController::buildEnterTransactionView($page, false);
                 }
             } catch (Exception $ex) {
                 CashRegisterController::buildEnterCardView($page, true);
                 $page->data['CashRegisterEnterCardView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_card_form_error_message">Kan gebruiker niet ophalen, probeer opnieuw.</h2>';
             }
         } else {
             CashRegisterController::buildEnterCardView($page, true);
             $page->data['CashRegisterEnterCardView']['errMsgs'] = array_merge($page->data['CashRegisterEnterCardView']['errMsgs'], $errMsgs);
         }
     } elseif (isset($_POST['register_transaction'])) {
         $errMsgs = CashRegisterEnterTransactionViewValidator::validate($_POST);
         if (empty($errMsgs)) {
             try {
                 $decrMoney = $_POST['decrease_money'] == '' ? 0 : SafeMath::getCentsFromString($_POST['decrease_money']);
                 $executingBrowserName = BrowserDB::getBrowserById($_SESSION['Stippers']['browser']->browserId)->name;
                 $trans = new MoneyTransaction(null, $_SESSION['Stippers']['CashRegister']['user']->userId, $_SESSION['Stippers']['CashRegister']['user']->balance, 0, $decrMoney, MoneyTransactionConfig::DEFAULT_DISCOUNT_PERC, false, null, $executingBrowserName, null);
                 if ($trans->getBalAfter() < 0) {
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Saldo te laag';
                     $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Het saldo de kaart is te laag.<br>Je komt onder nul uit.';
                     $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
                 } else {
                     MoneyTransactionDB::addTransaction($_SESSION['Stippers']['CashRegister']['user'], $trans);
                     $page->data['CashRegisterTransactionResultView']['balBefore'] = $trans->getBalBefore() / 100;
                     $page->data['CashRegisterTransactionResultView']['balAfter'] = $trans->getBalAfter() / 100;
                     $page->data['CashRegisterTransactionResultView']['discount'] = $trans->getDiscount() / 100;
                     $page->data['CashRegisterTransactionResultView']['decrMoney'] = $trans->getDecrMoney() / 100;
                     $page->addView('cashRegister/CashRegisterTransactionResultView');
                 }
             } catch (Exception $ex) {
                 CashRegisterController::buildEnterTransactionView($page, true);
                 $page->data['CashRegisterEnterTransactionView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Kan transactie niet registreren, probeer opnieuw.</h2>';
             }
         } else {
             CashRegisterController::buildEnterTransactionView($page, true);
             $page->data['CashRegisterEnterTransactionView']['errMsgs'] = array_merge($page->data['CashRegisterEnterTransactionView']['errMsgs'], $errMsgs);
         }
     }
     $page->showWithMenu();
 }
 public static function validate(array $data)
 {
     $errMsgs = array();
     //Get cents with safe precision
     $incrMoney = SafeMath::getCentsFromString($data['increase_money']);
     $decrMoney = SafeMath::getCentsFromString($data['decrease_money']);
     if ($data['increase_money'] != '' && ($incrMoney === false || $incrMoney > 99999) || $data['decrease_money'] != '' && ($decrMoney === false || $decrMoney > 99999)) {
         $errMsgs['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Voer geldige bedragen in.</h2>';
     } elseif ($data['increase_money'] < 0 || $data['decrease_money'] < 0) {
         $errMsgs['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Je kan enkel positieve bedragen ingeven.</h2>';
     } elseif ($data['increase_money'] == '' && $data['decrease_money'] == '') {
         $errMsgs['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Je hebt geen transactie ingegeven.</h2>';
     }
     return $errMsgs;
 }
 public static function post()
 {
     $page = new Page();
     $page->data['title'] = 'Geld beheren';
     $errMsgs = ManageUserMoneyEnterTransactionViewValidator::validate($_POST);
     if (empty($errMsgs)) {
         try {
             $incrMoney = $_POST['increase_money'] == '' ? 0 : SafeMath::getCentsFromString($_POST['increase_money']);
             $decrMoney = $_POST['decrease_money'] == '' ? 0 : SafeMath::getCentsFromString($_POST['decrease_money']);
             $fromPrize = isset($_POST['from_prize']);
             if (isset($_SESSION['Stippers']['browser'])) {
                 $executingBrowserName = BrowserDB::getBrowserById($_SESSION['Stippers']['browser']->browserId)->name;
             } else {
                 $executingBrowserName = null;
             }
             if (isset($_SESSION['Stippers']['user'])) {
                 $executingUser = $_SESSION['Stippers']['user']->userId;
             } else {
                 $executingUser = null;
             }
             $trans = new MoneyTransaction(null, $_SESSION['Stippers']['ManageUserMoney']['user']->userId, $_SESSION['Stippers']['ManageUserMoney']['user']->balance, $incrMoney, $decrMoney, MoneyTransactionConfig::DEFAULT_DISCOUNT_PERC, $fromPrize, null, $executingBrowserName, $executingUser);
             if ($trans->getBalAfter() < 0) {
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['tryAgainUrl'] = $_SERVER['REQUEST_URI'];
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['errorTitle'] = 'Saldo te laag';
                 $page->data['ErrorMessageWithDescriptionWithLinkView']['errorDescription'] = 'Het saldo de kaart is te laag.<br>Je komt onder nul uit.';
                 $page->addView('error/ErrorMessageWithDescriptionWithLinkView');
             } else {
                 MoneyTransactionDB::addTransaction($_SESSION['Stippers']['ManageUserMoney']['user'], $trans);
                 $page->data['ManageUserMoneyTransactionResultView']['balBefore'] = $trans->getBalBefore() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['balAfter'] = $trans->getBalAfter() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['discount'] = $trans->getDiscount() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['incrMoney'] = $trans->getIncrMoney() / 100;
                 $page->data['ManageUserMoneyTransactionResultView']['decrMoney'] = $trans->getDecrMoney() / 100;
                 $page->addView('manageUserMoney/ManageUserMoneyTransactionResultView');
             }
         } catch (Exception $ex) {
             ManageUserMoneyController::buildEnterTransactionView($page, true);
             $page->data['ManageUserMoneyEnterTransactionView']['errMsgs']['global'] = '<h2 class="error_message" id="enter_transaction_form_error_message">Kan transactie niet registreren, probeer opnieuw.</h2>';
         }
     } else {
         ManageUserMoneyController::buildEnterTransactionView($page, true);
         $page->data['ManageUserMoneyEnterTransactionView']['errMsgs'] = array_merge($page->data['ManageUserMoneyEnterTransactionView']['errMsgs'], $errMsgs);
     }
     $page->showWithMenu();
 }