public function getOpenTransactions()
 {
     $dbh = $this->getDatabaseHandler();
     $stmt = $dbh->prepare("SELECT * FROM transactions WHERE status='pending'");
     $stmt->execute();
     $transactions = array();
     foreach ($stmt->fetchAll(\PDO::FETCH_ASSOC) as $data) {
         $trans = new Transaction();
         $trans->exchangeArray($data);
         $transactions[] = $trans;
     }
     return $transactions;
 }
 public function approveRegistration(Request $request, $customerId)
 {
     if (!isset($request->request['amount'])) {
         return JsonErrorResponse::fromKey(JsonErrorResponse::INVALID_REQUEST_PARAMETER);
     }
     $amount = $request->request['amount'];
     if (!filter_var($amount, FILTER_VALIDATE_REGEXP, array("options" => array("regexp" => "/^\\d*(\$|\\.\\d\\d\$)/")))) {
         return JsonErrorResponse::fromKey(JsonErrorResponse::INVALID_AMOUNT);
     }
     $amount = floatval($amount);
     $customerRepository = $this->getCustomerRepository();
     $customer = $customerRepository->getCustomerById($customerId);
     if (is_null($customer)) {
         return JsonErrorResponse::fromKey(JsonErrorResponse::INVALID_CUSTOMER_ID);
     }
     if ($customer->status == 'pending') {
         $credentials = $customerRepository->getCustomerCredentials($customer);
         if (is_null($credentials['scs_pin'])) {
             $password = Helper::randomString(5);
             $message = "Dear {$customer->firstname} {$customer->lastname}," . PHP_EOL . "your Account was successfully approved!" . "You can now login and make transactions with your tan list" . $password . PHP_EOL . PHP_EOL . "Best Regards," . PHP_EOL . "SitzBank";
             $mail = Helper::getPhpMailer();
             $mail->addAddress($customer->email, $customer->firstname . ' ' . $customer->lastname);
             $mail->Subject = "Account approved!";
             $mail->Body = $message;
             if (!$mail->send()) {
                 return JsonErrorResponse::fromKey(JsonErrorResponse::MAIL_ERROR);
             }
         } else {
             // using the scs generator
             $message = "Dear {$customer->firstname} {$customer->lastname}," . PHP_EOL . "your Account was successfully approved! You chose to use the scs tan generator." . PHP_EOL . "You can download the generator in the logged in area (make a transfer section)." . PHP_EOL . "Your scs pin is " . $credentials['scs_pin'] . PHP_EOL . "Best Regards," . PHP_EOL . "SitzBank";
             $mail = Helper::getPhpMailer();
             $mail->addAddress($customer->email, $customer->firstname . ' ' . $customer->lastname);
             $mail->Subject = "Welcome to Sitzbank!";
             $mail->Body = $message;
             if (!$mail->send()) {
                 return JsonErrorResponse::fromKey(JsonErrorResponse::MAIL_ERROR);
             }
         }
     }
     if ($customerRepository->approveRegistration($customerId)) {
         if ($amount > 0) {
             $transaction = Transaction::withData(1, $customer->id, $amount, "Initial Account Balance", 'approved');
             $this->getTransactionRepository()->createTransaction($transaction);
         }
         return new JsonResponse(array('success' => true));
     }
     return JsonErrorResponse::fromKey(JsonErrorResponse::UNEXPECTED_ERROR);
 }