Error afhandeling
This commit is contained in:
parent
ee1d1e9df2
commit
4bde697558
@ -17,6 +17,46 @@ class Overboekingen {
|
||||
public static $POSITIEF = 7;
|
||||
public static $SALDO = 8;
|
||||
public static $OMSCHRIJVING = 9;
|
||||
public static $SPAARREKENING = 10;
|
||||
|
||||
public static function getErrorMessage($code) {
|
||||
switch ($code) {
|
||||
case Overboekingen::$EIGENAAR:
|
||||
$message = "U bent niet de eigenaar van de 'van' rekening";
|
||||
break;
|
||||
case Overboekingen::$IBAN:
|
||||
$message = "De IBAN van 'naar' is ongeldig";
|
||||
break;
|
||||
case Overboekingen::$BANK:
|
||||
$message = "U kunt alleen binnen de InforBank geld overmaken";
|
||||
break;
|
||||
case Overboekingen::$BESTAAN:
|
||||
$message = "De 'naar' rekening bestaat niet";
|
||||
break;
|
||||
case Overboekingen::$ZELFDE:
|
||||
$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";
|
||||
break;
|
||||
case Overboekingen::$POSITIEF:
|
||||
$message = "Het bedrag moet positief zijn";
|
||||
break;
|
||||
case Overboekingen::$SALDO:
|
||||
$message = "Uw saldo is te laag";
|
||||
break;
|
||||
case Overboekingen::$OMSCHRIJVING:
|
||||
$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";
|
||||
break;
|
||||
default:
|
||||
$message = "";
|
||||
break;
|
||||
}
|
||||
return $message;
|
||||
}
|
||||
|
||||
private static function isValidFloat($bedrag) {
|
||||
$hasdecimal = false;
|
||||
@ -55,6 +95,10 @@ class Overboekingen {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static function error($code){
|
||||
throw new Exception(Overboekingen::getErrorMessage($code), $code);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param IBAN $van De rekening waar het bedrag vanaf wordt gehaald
|
||||
@ -67,7 +111,7 @@ class Overboekingen {
|
||||
$vanRekening = Rekeningen::isEigenRekeningIBAN($van);
|
||||
if (!$vanRekening) {
|
||||
//error: rekening is niet van klant
|
||||
throw new Exception("U bent niet de eigenaar van deze rekening", Overboekingen::$EIGENAAR);
|
||||
Overboekingen::error(Overboekingen::$EIGENAAR);
|
||||
}
|
||||
$ibanHelper = new IBAN();
|
||||
if (!$ibanHelper->isValidIBAN($naar)) {
|
||||
@ -75,38 +119,42 @@ class Overboekingen {
|
||||
throw new Exception("De IBAN van de ontvanger is ongeldig", Overboekingen::$IBAN);
|
||||
} elseif (!($ibanHelper->getLand($naar) == "NL" && $ibanHelper->getBank($naar) === "INFO")) {
|
||||
//error: andere bank
|
||||
throw new Exception("U kunt geen overboeking naar een andere bank doen", Overboekingen::$BANK);
|
||||
Overboekingen::error(Overboekingen::$BANK);
|
||||
}
|
||||
$naarRekeningnr = $ibanHelper->getRekeningNummer($naar);
|
||||
|
||||
//Controleer of de rekening bestaat
|
||||
$db = Application::getContainer()->db;
|
||||
$naarRekening = $db->rekeningen->where("rekeningnr", $naarRekeningnr);
|
||||
if (count($naarRekening) !== 1) {
|
||||
$naarRekeningen = $db->rekeningen->where("rekeningnr", $naarRekeningnr);
|
||||
if (count($naarRekeningen) !== 1) {
|
||||
//error: rekening bestaat niet
|
||||
throw new Exception("De ontvangende rekening bestaat niet", Overboekingen::$BESTAAN);
|
||||
}
|
||||
foreach ($naarRekening as $rekening) {
|
||||
$naarid = $rekening['id'];
|
||||
Overboekingen::error(Overboekingen::$BESTAAN);
|
||||
}
|
||||
$naarRekening = $naarRekeningen[array("rekeningnr" => $naarRekeningnr)];
|
||||
if ($naarRekeningnr == $vanRekening['nr']) {
|
||||
//error: afzender is hetzelfde als ontvanger
|
||||
throw new Exception("De ontvangende rekening is hetzelfde als de verzendende", Overboekingen::$ZELFDE);
|
||||
Overboekingen::error(Overboekingen::$ZELFDE);
|
||||
}
|
||||
if(!Rekeningen::isEigenRekeningnr($naarRekeningnr)
|
||||
&& ((int)$naarRekening['typeid'] === Rekeningen::$SPAARREKENING
|
||||
|| (int)$vanRekening['typeid'] === Rekeningen::$SPAARREKENING)){
|
||||
Overboekingen::error(Overboekingen::$SPAARREKENING);
|
||||
}
|
||||
|
||||
if (!Overboekingen::isValidFloat($bedrag)) {
|
||||
throw new Exception("Geef als bedrag een getal op met maximaal 9 cijfers voor en 2 na de komma", Overboekingen::$GETAL);
|
||||
Overboekingen::error(Overboekingen::$GETAL);
|
||||
}
|
||||
|
||||
if ($bedrag <= 0) {
|
||||
throw new Exception("Het bedrag moet positief zijn", Overboekingen::$POSITIEF);
|
||||
Overboekingen::error(Overboekingen::$POSITIEF);
|
||||
}
|
||||
$bedragvalue = doubleval(str_replace(",", ".", $bedrag));
|
||||
if ($bedragvalue > $vanRekening['saldo']) {
|
||||
throw new Exception("Te laag saldo", Overboekingen::$SALDO);
|
||||
Overboekingen::error(Overboekingen::$SALDO);
|
||||
}
|
||||
if (strlen($omschrijving) > 40 && $type !== "id") {
|
||||
//error: te lange omschrijving
|
||||
throw new Exception("De omschrijving is te lang", Overboekingen::$OMSCHRIJVING);
|
||||
Overboekingen::error(Overboekingen::$OMSCHRIJVING);
|
||||
}
|
||||
//Voeg transactie toe
|
||||
$db->transacties->insert([
|
||||
@ -122,8 +170,8 @@ class Overboekingen {
|
||||
$db->rekeningen->where("rekeningnr", $vanRekening['nr'])->update([
|
||||
"saldo" => $vanRekening['saldo'] - $bedragvalue
|
||||
]);
|
||||
$naarRekening[$naarid]->update([
|
||||
"saldo" => $naarRekening[$naarid]['saldo'] + $bedragvalue
|
||||
$naarRekening->update([
|
||||
"saldo" => $naarRekening['saldo'] + $bedragvalue
|
||||
]);
|
||||
//Stuur bericht bij laag saldo
|
||||
if ($vanRekening['saldo'] - $bedragvalue < 20) {
|
||||
@ -131,8 +179,8 @@ class Overboekingen {
|
||||
}
|
||||
//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[$naarid]['saldo'] + $bedragvalue > 9000000000) {
|
||||
Berichten::newBericht($naarRekening[$naarid]['klantid'], "De InforBank", "Uw saldo is te hoog");
|
||||
if ($naarRekening['saldo'] + $bedragvalue > 9000000000) {
|
||||
Berichten::newBericht($naarRekening['klantid'], "De InforBank", "Uw saldo is te hoog");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,9 @@ use Inforbank\Application;
|
||||
|
||||
class Rekeningen
|
||||
{
|
||||
public static $BETAALREKENING = 1;
|
||||
public static $SPAARREKENING = 2;
|
||||
|
||||
public static function getCurrentUserRekeningen()
|
||||
{
|
||||
$container = Application::getContainer();
|
||||
|
@ -21,9 +21,9 @@ class Statistieken {
|
||||
$db = $container->db;
|
||||
$saldo = $db->rekeningen->where("rekeningnr", $rekeningNummer)[array("rekeningnr" => $rekeningNummer)]['saldo'];
|
||||
$eraf = $db->transacties->select("datum, SUM(bedrag) as bedr")->where("van", $rekeningNummer)
|
||||
->group("datum")->order("datum ASC, id DESC");
|
||||
->group("datum");
|
||||
$erbij = $db->transacties->select("datum, SUM(bedrag) as bedr")->where("naar", $rekeningNummer)
|
||||
->group("datum")->order("datum ASC, id DESC");
|
||||
->group("datum");
|
||||
$huidigSaldo = (double)$saldo;
|
||||
$yas = array($huidigSaldo);
|
||||
for($i = 1; $i <= $dagen; $i++){
|
||||
|
@ -27,11 +27,12 @@ class Overboeking
|
||||
{
|
||||
public function __construct(App $app)
|
||||
{
|
||||
$app->get('/overboeking', function ($request, $response, $args) {
|
||||
$app->get('/overboeking', function ($request, $response, $args) use($app) {
|
||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||
return $this->renderer->render($response, 'overboeking.phtml', [
|
||||
'header' => Header::getHeaderData(),
|
||||
'rekeningen' => $rekeningen
|
||||
'rekeningen' => $rekeningen,
|
||||
'error' => $_GET['error']
|
||||
]);
|
||||
})->add(new Middleware());
|
||||
|
||||
@ -45,7 +46,7 @@ class Overboeking
|
||||
try {
|
||||
$ibanhelper = new IBAN();
|
||||
Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $naar, $bedrag, $omschrijving, "bg");
|
||||
return Redirect::create($request, $response, "/rekeningen/$van");
|
||||
return Redirect::create($request, $response, "/rekeningen/$van?geslaagd=1");
|
||||
} catch (Exception $e) {
|
||||
return Redirect::create($request, $response, "/overboeking?error=" . $e->getCode() . "");
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ class Statistieken {
|
||||
$verloop = StatistiekenHelper::getSaldoverloop(30, $args['rekeningnummer']);
|
||||
return $this->renderer->render($response, "statistieken.phtml", [
|
||||
"header" => Header::getHeaderData(),
|
||||
"rekeningnr" => $args['rekeningnummer'],
|
||||
"statistieken" => [
|
||||
"x-as" => $verloop['x-as'],
|
||||
"y-as" => $verloop['y-as']
|
||||
|
@ -63,7 +63,8 @@ class Transacties {
|
||||
return $this->renderer->render($response, 'transacties.phtml', [
|
||||
'header' => Header::getHeaderData(),
|
||||
'rekening' => $rekening,
|
||||
'transacties' => $returnArray
|
||||
'transacties' => $returnArray,
|
||||
'geslaagd' => $_GET['geslaagd']
|
||||
]);
|
||||
})->add(new Auth\Middleware());
|
||||
}
|
||||
|
@ -1,55 +1,61 @@
|
||||
<?php include '__header.phtml'; ?>
|
||||
|
||||
<h2 class="page-header">Nieuwe overboeking</h2>
|
||||
|
||||
<?php
|
||||
if (isset($error)) {
|
||||
?>
|
||||
<div class="alert alert-danger" role="alert"><?php echo Inforbank\Application\Helper\Overboekingen::getErrorMessage($error) ?></div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<form method="post" action="" class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label for="van" class="col-sm-2 control-label">Van</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="van" class="form-control">
|
||||
<?php
|
||||
foreach ($rekeningen as $rekening) {
|
||||
echo "<option value=" . $rekening['nr'] . ">" . $rekening['iban'] . "</option>\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="naar" class="col-sm-2 control-label">Naar (IBAN)</label>
|
||||
<div class="col-sm-10">
|
||||
<input name="naar" type="text" class="form-control" placeholder="NL00 INFO 0000 0000 00"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<br/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="bedrag" class="col-sm-2 control-label">Bedrag</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">€</div><input class="form-control" name="bedrag" type="decimal" placeholder=""></input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="omschrijving" class="col-sm-2 control-label">Omschrijving (40 tekens)</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea class="form-control" name="omschrijving" maxlength=40></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<br/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-default">Overboeking bevestigen</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form method="post" action="" class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label for="van" class="col-sm-2 control-label">Van</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="van" class="form-control">
|
||||
<?php
|
||||
foreach ($rekeningen as $rekening) {
|
||||
echo "<option value=" . $rekening['nr'] . ">" . $rekening['iban'] . "</option>\n";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="naar" class="col-sm-2 control-label">Naar (IBAN)</label>
|
||||
<div class="col-sm-10">
|
||||
<input name="naar" type="text" class="form-control" placeholder="NL00 INFO 0000 0000 00"></input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<br/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="bedrag" class="col-sm-2 control-label">Bedrag</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon">€</div><input class="form-control" name="bedrag" type="decimal" placeholder=""></input>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="omschrijving" class="col-sm-2 control-label">Omschrijving (40 tekens)</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea class="form-control" name="omschrijving" maxlength=40></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<br/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-default">Overboeking bevestigen</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include '__footer.phtml'; ?>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php include '__header.phtml'; ?>
|
||||
<a class="btn btn-default pull-left" href="rekeningen/<?= $rekeningnr?>" role="button">Terug</a>
|
||||
<canvas id="myChart" height="100"></canvas>
|
||||
<script>
|
||||
function newDate(days) {
|
||||
|
@ -5,67 +5,70 @@ if (!$rekening) {
|
||||
?>
|
||||
|
||||
<div class="alert alert-danger" role="alert"><b>Fout!</b> Dit is niet een aan jouw account gekoppelde rekening.</div>
|
||||
<?php
|
||||
|
||||
<?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="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
IBAN/rekeningnummer<br/>
|
||||
<h4><?php echo $rekening['iban'] ?></h4>
|
||||
</div>
|
||||
|
||||
<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="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
IBAN/rekeningnummer<br/>
|
||||
<h4><?php echo $rekening['iban']?></h4>
|
||||
</div>
|
||||
<div class="col-md-2">Rentetarief<br/>
|
||||
<h4><?php echo $rekening['rente']; ?>%</h4>
|
||||
</div>
|
||||
<div class="col-md-2">Saldo<br/>
|
||||
<h4><b><?php echo money_format('%(#1n', $rekening['saldo']); ?></b></h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">Rentetarief<br/>
|
||||
<h4><?php echo $rekening['rente']; ?>%</h4>
|
||||
</div>
|
||||
<div class="col-md-2">Saldo<br/>
|
||||
<h4><b><?php echo money_format('%(#1n', $rekening['saldo']); ?></b></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Code</th>
|
||||
<th>Omschrijving</th>
|
||||
<th>Tegenrekening</th>
|
||||
<th>AF/BIJ</th>
|
||||
<th>Bedrag</th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($transacties as $transactie) {
|
||||
if (!isset($transactie['omschrijving'])) {
|
||||
$transactie['omschrijving'] = "";
|
||||
}
|
||||
echo "<tr>";
|
||||
echo "<td>" . $transactie['datum'] . "</td>";
|
||||
echo "<td>" . $transactie['type'] . "</td>\n";
|
||||
echo "<td>" . $transactie['omschrijving'] . "</td>\n";
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<table class="table">
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Code</th>
|
||||
<th>Omschrijving</th>
|
||||
<th>Tegenrekening</th>
|
||||
<th>AF/BIJ</th>
|
||||
<th>Bedrag</th>
|
||||
</tr>
|
||||
<?php
|
||||
foreach ($transacties as $transactie) {
|
||||
if (!isset($transactie['omschrijving'])) {
|
||||
$transactie['omschrijving'] = "";
|
||||
if ($transactie['van'] === $rekening['iban']) {
|
||||
echo "<td>" . $transactie['naar'] . "</td>\n";
|
||||
echo "<td>AF</td>\n";
|
||||
} else {
|
||||
echo "<td>" . $transactie['van'] . "</td>\n";
|
||||
echo "<td>BIJ</td>\n";
|
||||
}
|
||||
|
||||
echo "<td>" . money_format('%(#1n', $transactie['bedrag']) . "</td>\n";
|
||||
echo "</tr>";
|
||||
}
|
||||
echo "<tr>";
|
||||
echo "<td>" . $transactie['datum'] . "</td>";
|
||||
echo "<td>" . $transactie['type'] . "</td>\n";
|
||||
echo "<td>" . $transactie['omschrijving'] . "</td>\n";
|
||||
|
||||
if ($transactie['van'] === $rekening['iban']) {
|
||||
echo "<td>" . $transactie['naar'] . "</td>\n";
|
||||
echo "<td>AF</td>\n";
|
||||
} else {
|
||||
echo "<td>" . $transactie['van'] . "</td>\n";
|
||||
echo "<td>BIJ</td>\n";
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
?>
|
||||
</table>
|
||||
<br/>
|
||||
<small>ba = betaalautomaat, bg = bankgiro/SEPA opdracht, id = Inforbank Direct Online Betalen (iDeal), sp = spoedbetaling</small>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php include '__footer.phtml'; ?>
|
||||
|
Reference in New Issue
Block a user