1
0

Several small fixes + removed unnecessary files

This commit is contained in:
Christiaan Goossens 2017-04-03 16:26:17 +02:00
parent 4bde697558
commit 8552933a52
11 changed files with 99 additions and 158 deletions

View File

@ -44,15 +44,14 @@ ul.nv {
.circle {
border-radius: 50%;
color: #000000;
color: #0094ff;
text-align: center;
background: #ffffff;
height: 20px;
width: 20px;
display: table-cell;
text-align: center;
display: inline-block;
border-radius: 50%;
margin-left: 10px;
}
/** Index **/

View File

@ -1,28 +0,0 @@
<?php
/**
* Informatica Eindproject D4p
* 6in3, Stedelijk Gymnasium Nijmegen
* Docent: Hans de Wolf
*
* ==================
*
* Daniel Boutros,
* Christiaan Goossens,
* Jelmer Hinssen
*/
namespace Inforbank\Application;
use \Slim\App;
class Daniel
{
public function __construct(App $app)
{
$app->get('/daniel', function ($request, $response, $args) {
// Render index view
return $this->renderer->render($response, 'daniel.phtml', $args);
});
}
}

View File

@ -6,8 +6,8 @@ use Exception;
use Inforbank\Application;
use Inforbank\Application\Helper\Rekeningen;
class Overboekingen {
class Overboekingen
{
public static $EIGENAAR = 1;
public static $IBAN = 2;
public static $BANK = 3;
@ -19,37 +19,38 @@ class Overboekingen {
public static $OMSCHRIJVING = 9;
public static $SPAARREKENING = 10;
public static function getErrorMessage($code) {
public static function getErrorMessage($code)
{
switch ($code) {
case Overboekingen::$EIGENAAR:
$message = "U bent niet de eigenaar van de 'van' rekening";
$message = "U bent niet de eigenaar van de betalende rekening.";
break;
case Overboekingen::$IBAN:
$message = "De IBAN van 'naar' is ongeldig";
$message = "Het ontvangende rekeningnummer is ongeldig.";
break;
case Overboekingen::$BANK:
$message = "U kunt alleen binnen de InforBank geld overmaken";
$message = "U kunt alleen binnen de InforBank geld overmaken.";
break;
case Overboekingen::$BESTAAN:
$message = "De 'naar' rekening bestaat niet";
$message = "De 'naar' rekening bestaat niet.";
break;
case Overboekingen::$ZELFDE:
$message = "De 'van' en 'naar' rekening mogen niet hetzelfde zijn";
$message = "De 'van' en 'naar' rekening mogen niet hetzelfde zijn.";
break;
case Overboekingen::$GETAL:
$message = "Het bedrag moet een getal zijn met maximaal 9 cijfers voor en 2 achter de komma";
$message = "Het bedrag moet een getal zijn met maximaal 9 cijfers voor en 2 achter de komma.";
break;
case Overboekingen::$POSITIEF:
$message = "Het bedrag moet positief zijn";
$message = "Het bedrag moet positief zijn.";
break;
case Overboekingen::$SALDO:
$message = "Uw saldo is te laag";
$message = "Uw saldo is te laag voor deze betaling.";
break;
case Overboekingen::$OMSCHRIJVING:
$message = "De omschrijving mag niet langer dan 40 tekens zijn";
$message = "De omschrijving mag niet langer dan 40 tekens zijn.";
break;
case Overboekingen::$SPAARREKENING:
$message = "Je kan geen geld overmaken van of naar een spaarrekening";
$message = "Je kan geen geld overmaken van of naar een spaarrekening van een ander.";
break;
default:
$message = "";
@ -58,7 +59,8 @@ class Overboekingen {
return $message;
}
private static function isValidFloat($bedrag) {
private static function isValidFloat($bedrag)
{
$hasdecimal = false;
$decimals = 0;
$voorcijfers = 0;
@ -69,7 +71,7 @@ class Overboekingen {
if ($char === "." || $char === ",") {
//Twee komma's
return false;
} else if ($ascii >= ord("0") && $ascii <= ord("9")) {
} elseif ($ascii >= ord("0") && $ascii <= ord("9")) {
$decimals++;
if ($decimals > 2) {
//Meer dan twee cijfers achter de komma
@ -79,9 +81,9 @@ class Overboekingen {
//Ongeldig teken
return false;
}
} else if ($char === "." || $char === ",") {
} elseif ($char === "." || $char === ",") {
$hasdecimal = true;
} else if ($ascii >= ord("0") || $ascii <= ord("9")) {
} elseif ($ascii >= ord("0") || $ascii <= ord("9")) {
$voorcijfers++;
if ($voorcijfers > 9) {
//Te veel cijfers voor de komma
@ -95,10 +97,11 @@ class Overboekingen {
return true;
}
private static function error($code){
private static function error($code)
{
throw new Exception(Overboekingen::getErrorMessage($code), $code);
}
/**
*
* @param IBAN $van De rekening waar het bedrag vanaf wordt gehaald
@ -107,7 +110,8 @@ class Overboekingen {
* @param string $omschrijving De omschrijving van de overoeking
* $param string $type Het type overboeking
*/
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type) {
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type)
{
$vanRekening = Rekeningen::isEigenRekeningIBAN($van);
if (!$vanRekening) {
//error: rekening is niet van klant
@ -116,7 +120,7 @@ class Overboekingen {
$ibanHelper = new IBAN();
if (!$ibanHelper->isValidIBAN($naar)) {
//error: ongeldige iban
throw new Exception("De IBAN van de ontvanger is ongeldig", Overboekingen::$IBAN);
throw new Exception("De IBAN van de ontvanger is ongeldig.", Overboekingen::$IBAN);
} elseif (!($ibanHelper->getLand($naar) == "NL" && $ibanHelper->getBank($naar) === "INFO")) {
//error: andere bank
Overboekingen::error(Overboekingen::$BANK);
@ -135,20 +139,23 @@ class Overboekingen {
//error: afzender is hetzelfde als ontvanger
Overboekingen::error(Overboekingen::$ZELFDE);
}
if(!Rekeningen::isEigenRekeningnr($naarRekeningnr)
if (!Rekeningen::isEigenRekeningnr($naarRekeningnr)
&& ((int)$naarRekening['typeid'] === Rekeningen::$SPAARREKENING
|| (int)$vanRekening['typeid'] === Rekeningen::$SPAARREKENING)){
|| (int)$vanRekening['typeid'] === Rekeningen::$SPAARREKENING)) {
Overboekingen::error(Overboekingen::$SPAARREKENING);
}
if (!Overboekingen::isValidFloat($bedrag)) {
Overboekingen::error(Overboekingen::$GETAL);
}
if ($bedrag <= 0) {
$bedragvalue = doubleval(str_replace(",", ".", $bedrag));
if ($bedragvalue <= 0) {
Overboekingen::error(Overboekingen::$POSITIEF);
}
$bedragvalue = doubleval(str_replace(",", ".", $bedrag));
if ($bedragvalue > $vanRekening['saldo']) {
Overboekingen::error(Overboekingen::$SALDO);
}
@ -160,7 +167,7 @@ class Overboekingen {
$db->transacties->insert([
"van" => $vanRekening['nr'],
"naar" => $naarRekeningnr,
"bedrag" => $bedrag,
"bedrag" => $bedragvalue,
"type" => $type,
"omschrijving" => $omschrijving,
"datum" => date("Y-m-d")
@ -168,20 +175,19 @@ class Overboekingen {
//Wijzig saldo
$db->rekeningen->where("rekeningnr", $vanRekening['nr'])->update([
"saldo" => $vanRekening['saldo'] - $bedragvalue
"saldo" => ((double) $vanRekening['saldo'] - $bedragvalue)
]);
$naarRekening->update([
"saldo" => $naarRekening['saldo'] + $bedragvalue
"saldo" => ((double) $naarRekening['saldo'] + $bedragvalue)
]);
//Stuur bericht bij laag saldo
if ($vanRekening['saldo'] - $bedragvalue < 20) {
Berichten::newBericht(Application::getContainer()->auth->getUserID(), "De InforBank", "U heeft een laag saldo");
Berichten::newBericht(Application::getContainer()->auth->getUserID(), "Bank", "U heeft een laag saldo op uw rekening: " . $ibanHelper->getIBAN($vanRekening['nr']) . ".<br/>Uw huidige saldo is " . money_format('%(#1n', $vanRekening['saldo'] - $bedragvalue) . ".");
}
//In de database worden de getallen met 10 cijfers voor de komma opgeslagen
//Als het saldo te hoog wordt heb je een probleem
if ($naarRekening['saldo'] + $bedragvalue > 9000000000) {
Berichten::newBericht($naarRekening['klantid'], "De InforBank", "Uw saldo is te hoog");
Berichten::newBericht($naarRekening['klantid'], "Bank", "Uw saldo is te hoog!");
}
}
}

View File

@ -20,7 +20,7 @@ class Rekeningen
{
public static $BETAALREKENING = 1;
public static $SPAARREKENING = 2;
public static function getCurrentUserRekeningen()
{
$container = Application::getContainer();
@ -47,8 +47,9 @@ class Rekeningen
return $returnArray;
}
public static function isEigenRekeningIBAN($iban){
public static function isEigenRekeningIBAN($iban)
{
$rekeningen = Rekeningen::getCurrentUserRekeningen();
$vanRekening = false;
//Controleer of de rekening wel van de ingelogde klant is
@ -60,13 +61,15 @@ class Rekeningen
}
return $vanRekening;
}
public static function isEigenRekeningnr($nr){
public static function isEigenRekeningnr($nr)
{
$rekeningen = Rekeningen::getCurrentUserRekeningen();
$vanRekening = false;
//Controleer of de rekening wel van de ingelogde klant is
foreach ($rekeningen as $rek) {
if ($rek['nr'] === $nr) {
if ((int) $rek['nr'] === (int) $nr) {
$vanRekening = $rek;
break;
}

View File

@ -20,9 +20,10 @@ use Inforbank\Application\Helper\Rekeningen;
use Inforbank\Application\Helper\IBAN;
use Inforbank\Application;
class Transacties {
public function __construct(App $app) {
class Transacties
{
public function __construct(App $app)
{
$app->get('/rekeningen/{rekeningnummer}', function ($request, $response, $args) {
$rekeningen = Rekeningen::getCurrentUserRekeningen();
@ -45,7 +46,7 @@ class Transacties {
}
$container = Application::getContainer();
$db = $container->db;
$transacties = $db->transacties->where('van', '12345678')->or('naar', $rekeningnr)
$transacties = $db->transacties->where('van', $rekeningnr)->or('naar', $rekeningnr)
->order("datum DESC, id DESC");
$returnArray = array();
@ -68,5 +69,4 @@ class Transacties {
]);
})->add(new Auth\Middleware());
}
}

View File

@ -25,6 +25,16 @@ $settings = require __DIR__ . '/settings.php';
setlocale(LC_MONETARY, 'nl_NL.UTF-8');
date_default_timezone_set('Europe/Amsterdam');
//De functie money_format bestaat alleen op systemen met strfmon, dus niet op Windows
//Om een foutmelding tijdens het testen te voorkomen definiëren we deze functie
//als money_format niet bestaat
if (!function_exists("money_format")) {
function money_format($format, $value)
{
return "" . $value;
}
}
// Create the Slim application object with the settings
/**
* ==============
@ -129,7 +139,6 @@ new Inforbank\Application\Login($app);
* Pagina's
*/
new Inforbank\Application\Daniel($app);
new Inforbank\Application\Transacties($app);
new Inforbank\Application\Overboeking($app);
new Inforbank\Application\Rekeningen($app);

View File

@ -1,13 +1,3 @@
<?php
//De functie money_format bestaat alleen op systemen met strfmon, dus niet op Windows
//Om een foutmelding tijdens het testen te voorkomen definiëren we deze functie
//als money_format niet bestaat
if(!function_exists("money_format")){
function money_format($format, $value){
return "€ " . $value;
}
}
?>
<!DOCTYPE html>
<html>
<head>
@ -37,8 +27,9 @@ if(!function_exists("money_format")){
<div class="container">
<ul class="nv">
<li><a href="rekeningen">Rekeningen</a></li>
<li><a href="berichten">Berichten<?php if($header['klant']['ongelezen'] > 0){?>
<span class="circle"><?php echo$header['klant']['ongelezen'];?></span><?php }?></a></li>
<li><a href="berichten">Berichten<?php if ($header['klant']['ongelezen'] > 0) {
?><span class="circle"><?php echo$header['klant']['ongelezen']; ?></span><?php
}?></a></li>
</ul>
</div>
</div>

View File

@ -6,10 +6,13 @@
?>
<div class="panel panel-default">
<div class="panel-heading">
<?php if(!$bericht['gelezen']){?>
<span class="label label-info">Nieuw bericht</span>
<?php } ?>
<h3 class="panel-title"><?php echo $bericht['datum'];?></h3>
<?php if (!$bericht['gelezen']) {
?>
<span class="label label-info">Nieuw bericht</span><br/><br/>
<?php
} ?>
<h3 class="panel-title"><?php echo $bericht['datum']; ?></h3>
<small>Afzender: </small><?php echo $bericht['afzender']; ?></div>
<div class="panel-body">
<?php echo $bericht['bericht']; ?>
@ -17,6 +20,13 @@
</div>
<?php
} ?>
}
if (count($berichten) === 0) {
?>U heeft geen berichten.<?php
}
?>
<?php include '__footer.phtml'; ?>

View File

@ -1,59 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>InforBank - Inloggen</title>
<link href='//fonts.googleapis.com/css?family=Lato:300' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!--link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous" -->
</head>
<style>
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
}
.btn-primary {
color: #ff6000;
background-color: #2e652c;
border-color: #2e6da4;
margin-top: 5px;
}
.form-control{
margin: 5px 0;
}
body{
color: #ff6000;
}
.footer{
text-align: center;
}
table {
align:center
}
</style>
<body>
<div class="jumbotron">
<div class="container">
<h1>InforBank</h1>
</div>
</div>
<div class="container">
<table style="width:50%" align="center" style="margin: 0px auto;">
<tr>
<th>Transactienummer</th>
<th>Naam Debiteur/Crediteur</th>
<th>Aan-/Afschrijving</th>
<th>Bedrag</th>
<th>Datum</th>
</tr>
</table>
</div>
<footer class="footer">
&copy 2017 Alle rechten voorbehouden
</footer>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>

View File

@ -14,6 +14,11 @@
<?php
}
if (count($rekeningen) === 0) {
?>U heeft geen rekeningen.<?php
}
?>
<?php include '__footer.phtml'; ?>

View File

@ -6,16 +6,21 @@ if (!$rekening) {
<div class="alert alert-danger" role="alert"><b>Fout!</b> Dit is niet een aan jouw account gekoppelde rekening.</div>
<?php
} else {
if ($geslaagd) {
?>
<div class="alert alert-info" role="alert">De transactie is geslaagd</div>
<?php
}
?>
} ?>
<h2 class="page-header">Transactieoverzicht
<a class="btn btn-default pull-right" href="overboeking" role="button">Nieuwe overboeking</a>
<a class="btn btn-default pull-right" href="statistieken/<?= $rekening['nr'] ?>" role="button">Statistieken</a></h2>
<div class="btn-group pull-right" role="group">
<a class="btn btn-default" href="statistieken/<?= $rekening['nr'] ?>" role="button">Statistieken</a>
<a class="btn btn-default" href="overboeking" role="button">Nieuwe overboeking</a>
</div>
</h2>
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
@ -63,12 +68,12 @@ if (!$rekening) {
echo "<td>" . money_format('%(#1n', $transactie['bedrag']) . "</td>\n";
echo "</tr>";
}
?>
} ?>
</table>
<br/>
<small>ba = betaalautomaat, bg = bankgiro/SEPA opdracht, id = Inforbank Direct Online Betalen (iDeal), sp = spoedbetaling</small>
<?php
}
?>
<?php include '__footer.phtml'; ?>