Overboekingen helper
This commit is contained in:
parent
7db872748e
commit
c8521ff824
78
src/Application/Helper/Overboekingen.php
Normal file
78
src/Application/Helper/Overboekingen.php
Normal file
@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* To change this license header, choose License Headers in Project Properties.
|
||||
* To change this template file, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
namespace Inforbank\Application\Helper;
|
||||
|
||||
use Exception;
|
||||
use Inforbank\Application;
|
||||
|
||||
/**
|
||||
* Description of Overboekingen
|
||||
*
|
||||
* @author Sjelm
|
||||
*/
|
||||
class Overboekingen {
|
||||
/**
|
||||
*
|
||||
* @param IBAN $van De rekening waar het bedrag vanaf wordt gehaald
|
||||
* @param IBAN $naar De rekening waar het bedrag bijkomt
|
||||
* @param double $bedrag Het bedrag
|
||||
* @param string $omschrijving De omschrijving van de overoeking
|
||||
* $param string $type Het type overboeking
|
||||
*/
|
||||
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type){
|
||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||
|
||||
$vanRekening = false;
|
||||
//TODO fatsoenlijke errorafhandeling en redirect
|
||||
//Controleer of de rekening wel van de ingelogde klant is
|
||||
foreach ($rekeningen as $rek) {
|
||||
if ($rek['iban'] === $van) {
|
||||
$vanRekening = $rek;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$vanRekening) {
|
||||
//error: rekening is niet van klant
|
||||
throw new Exception("U bent niet de eigenaar van deze rekening");
|
||||
}
|
||||
$ibanHelper = new IBAN();
|
||||
if (!$ibanHelper->isValidIBAN($naar)) {
|
||||
//error: ongeldige iban
|
||||
throw new Exception("De IBAN van de ontvanger is ongeldig");
|
||||
} elseif (!($ibanHelper->getLand($naar) == "NL" && $ibanHelper->getBank($naar) === "INFO")) {
|
||||
//error: andere bank
|
||||
throw new Exception("U kunt geen overboeking naar een andere bank doen");
|
||||
}
|
||||
$naarRekeningnr = $ibanHelper->getRekeningNummer($naar);
|
||||
//TODO kijk of de rekening wel bestaat
|
||||
if ($naarRekeningnr == $vanRekening['nr']) {
|
||||
//error: afzender is hetzelfde als ontvanger
|
||||
throw new Exception("De ontvangende rekening is hetzelfde als de verzendende");
|
||||
}
|
||||
|
||||
|
||||
//TODO geldigheid bedrag onderzoeken
|
||||
//$bedragValue = (double) $bedrag;
|
||||
if (strlen($omschrijving) > 40) {
|
||||
//error: te lange omschrijving
|
||||
throw new Exception("De omschrijving is te lang");
|
||||
}
|
||||
$db = Application::getContainer()->db;
|
||||
$db->transacties->insert([
|
||||
"van" => $vanRekening['nr'],
|
||||
"naar" => $naarRekeningnr,
|
||||
"bedrag" => $bedrag,
|
||||
"type" => $type,
|
||||
"omschrijving" => $omschrijving
|
||||
]);
|
||||
|
||||
//TODO update saldo
|
||||
//TODO Checken of het saldo van de rekening onder de 20 euro komt, dan doe je een mededeling via de berichthelper.
|
||||
}
|
||||
}
|
@ -14,9 +14,11 @@
|
||||
|
||||
namespace Inforbank\Application;
|
||||
|
||||
use Inforbank\Application;
|
||||
use Inforbank\Application\Helper\IBAN;
|
||||
use Exception;
|
||||
use Inforbank\Application\Auth\Middleware;
|
||||
use Inforbank\Application\Helper\Header;
|
||||
use Inforbank\Application\Helper\IBAN;
|
||||
use Inforbank\Application\Helper\Overboekingen;
|
||||
use Inforbank\Application\Helper\Redirect;
|
||||
use Inforbank\Application\Helper\Rekeningen;
|
||||
use Slim\App;
|
||||
@ -31,7 +33,7 @@ class Overboeking
|
||||
'header' => Header::getHeaderData(),
|
||||
'rekeningen' => $rekeningen
|
||||
]);
|
||||
})->add(new Auth\Middleware());
|
||||
})->add(new Middleware());
|
||||
|
||||
$app->post('/overboeking', function ($request, $response, $args) {
|
||||
$post = $request->getParsedBody();
|
||||
@ -40,54 +42,14 @@ class Overboeking
|
||||
$bedrag = $post['bedrag'];
|
||||
$omschrijving = $post['omschrijving'];
|
||||
|
||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||
|
||||
$vanRekening = false;
|
||||
//TODO fatsoenlijke errorafhandeling en redirect
|
||||
//Controleer of de rekening wel van de ingelogde klant is
|
||||
foreach ($rekeningen as $rek) {
|
||||
if ($rek['nr'] === $van) {
|
||||
$vanRekening = $rek;
|
||||
break;
|
||||
try{
|
||||
$ibanhelper = new IBAN();
|
||||
Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $naar, $bedrag, $omschrijving, "GT");
|
||||
}catch(Exception $e){
|
||||
return Redirect::create($request, $response, "/overboeking?$e");
|
||||
//NL84 INFO 0023 4567 89
|
||||
}
|
||||
}
|
||||
if (!$vanRekening) {
|
||||
//error: rekening is niet van klant
|
||||
return Redirect::create($request, $response, "/eigenaar");
|
||||
}
|
||||
$ibanHelper = new IBAN();
|
||||
if (!$ibanHelper->isValidIBAN($naar)) {
|
||||
//error: ongeldige iban
|
||||
return Redirect::create($request, $response, "/ongeldig");
|
||||
} elseif (!($ibanHelper->getLand($naar) == "NL" && $ibanHelper->getBank($naar) === "INFO")) {
|
||||
//error: andere bank
|
||||
return Redirect::create($request, $response, "/andere");
|
||||
}
|
||||
$naarRekeningnr = $ibanHelper->getRekeningNummer($naar);
|
||||
//TODO kijk of de rekening wel bestaat
|
||||
if ($naarRekeningnr == $vanRekening['nr']) {
|
||||
//error: afzender is hetzelfde als ontvanger
|
||||
return Redirect::create($request, $response, "/zelfde");
|
||||
}
|
||||
|
||||
|
||||
//TODO geldigheid bedrag onderzoeken
|
||||
//$bedragValue = (double) $bedrag;
|
||||
//TODO omschrijving in database stoppen
|
||||
if (strlen($omschrijving) > 40) {
|
||||
//error: te lange omschrijving
|
||||
}
|
||||
$db = Application::getContainer()->db;
|
||||
$db->transacties->insert([
|
||||
"van" => $vanRekening['nr'],
|
||||
"naar" => $naarRekeningnr,
|
||||
"bedrag" => $bedrag,
|
||||
"type" => "GT" //GT staat voor internetbankieren
|
||||
]);
|
||||
|
||||
//TODO update saldo
|
||||
//TODO Checken of het saldo van de rekening onder de 20 euro komt, dan doe je een mededeling via de berichthelper.
|
||||
return Redirect::create($request, $response, "/");
|
||||
})->add(new Auth\Middleware());
|
||||
})->add(new Middleware());
|
||||
}
|
||||
}
|
||||
|
@ -20,10 +20,9 @@ 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();
|
||||
|
||||
@ -55,7 +54,8 @@ class Transacties
|
||||
"van" => $ibanhelper->getIBAN($transactie['van']),
|
||||
"naar" => $ibanhelper->getIBAN($transactie['naar']),
|
||||
"bedrag" => $transactie['bedrag'],
|
||||
"type" => $transactie['type']
|
||||
"type" => $transactie['type'],
|
||||
"omschrijving" => $transactie['omschrijving']
|
||||
);
|
||||
}
|
||||
return $this->renderer->render($response, 'transacties.phtml', [
|
||||
@ -65,4 +65,5 @@ class Transacties
|
||||
]);
|
||||
})->add(new Auth\Middleware());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,9 +20,6 @@
|
||||
border-color: #2e6da4;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.jumbotron{
|
||||
//text-align: center;
|
||||
}
|
||||
.form-control{
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user