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;
|
namespace Inforbank\Application;
|
||||||
|
|
||||||
use Inforbank\Application;
|
use Exception;
|
||||||
use Inforbank\Application\Helper\IBAN;
|
use Inforbank\Application\Auth\Middleware;
|
||||||
use Inforbank\Application\Helper\Header;
|
use Inforbank\Application\Helper\Header;
|
||||||
|
use Inforbank\Application\Helper\IBAN;
|
||||||
|
use Inforbank\Application\Helper\Overboekingen;
|
||||||
use Inforbank\Application\Helper\Redirect;
|
use Inforbank\Application\Helper\Redirect;
|
||||||
use Inforbank\Application\Helper\Rekeningen;
|
use Inforbank\Application\Helper\Rekeningen;
|
||||||
use Slim\App;
|
use Slim\App;
|
||||||
@ -31,7 +33,7 @@ class Overboeking
|
|||||||
'header' => Header::getHeaderData(),
|
'header' => Header::getHeaderData(),
|
||||||
'rekeningen' => $rekeningen
|
'rekeningen' => $rekeningen
|
||||||
]);
|
]);
|
||||||
})->add(new Auth\Middleware());
|
})->add(new Middleware());
|
||||||
|
|
||||||
$app->post('/overboeking', function ($request, $response, $args) {
|
$app->post('/overboeking', function ($request, $response, $args) {
|
||||||
$post = $request->getParsedBody();
|
$post = $request->getParsedBody();
|
||||||
@ -40,54 +42,14 @@ class Overboeking
|
|||||||
$bedrag = $post['bedrag'];
|
$bedrag = $post['bedrag'];
|
||||||
$omschrijving = $post['omschrijving'];
|
$omschrijving = $post['omschrijving'];
|
||||||
|
|
||||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
try{
|
||||||
|
$ibanhelper = new IBAN();
|
||||||
$vanRekening = false;
|
Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $naar, $bedrag, $omschrijving, "GT");
|
||||||
//TODO fatsoenlijke errorafhandeling en redirect
|
}catch(Exception $e){
|
||||||
//Controleer of de rekening wel van de ingelogde klant is
|
return Redirect::create($request, $response, "/overboeking?$e");
|
||||||
foreach ($rekeningen as $rek) {
|
//NL84 INFO 0023 4567 89
|
||||||
if ($rek['nr'] === $van) {
|
|
||||||
$vanRekening = $rek;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
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, "/");
|
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\Helper\IBAN;
|
||||||
use Inforbank\Application;
|
use Inforbank\Application;
|
||||||
|
|
||||||
class Transacties
|
class Transacties {
|
||||||
{
|
|
||||||
public function __construct(App $app)
|
public function __construct(App $app) {
|
||||||
{
|
|
||||||
$app->get('/rekeningen/{rekeningnummer}', function ($request, $response, $args) {
|
$app->get('/rekeningen/{rekeningnummer}', function ($request, $response, $args) {
|
||||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||||
|
|
||||||
@ -40,9 +39,9 @@ class Transacties
|
|||||||
}
|
}
|
||||||
if (!$rekening) {
|
if (!$rekening) {
|
||||||
return $this->renderer->render($response, 'transacties.phtml', [
|
return $this->renderer->render($response, 'transacties.phtml', [
|
||||||
'klant' => $klant,
|
'klant' => $klant,
|
||||||
'rekening' => false
|
'rekening' => false
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
$container = Application::getContainer();
|
$container = Application::getContainer();
|
||||||
$db = $container->db;
|
$db = $container->db;
|
||||||
@ -52,17 +51,19 @@ class Transacties
|
|||||||
|
|
||||||
foreach ($transacties as $transactie) {
|
foreach ($transacties as $transactie) {
|
||||||
$returnArray[] = array(
|
$returnArray[] = array(
|
||||||
"van" => $ibanhelper->getIBAN($transactie['van']),
|
"van" => $ibanhelper->getIBAN($transactie['van']),
|
||||||
"naar" => $ibanhelper->getIBAN($transactie['naar']),
|
"naar" => $ibanhelper->getIBAN($transactie['naar']),
|
||||||
"bedrag" => $transactie['bedrag'],
|
"bedrag" => $transactie['bedrag'],
|
||||||
"type" => $transactie['type']
|
"type" => $transactie['type'],
|
||||||
);
|
"omschrijving" => $transactie['omschrijving']
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return $this->renderer->render($response, 'transacties.phtml', [
|
return $this->renderer->render($response, 'transacties.phtml', [
|
||||||
'header' => Header::getHeaderData(),
|
'header' => Header::getHeaderData(),
|
||||||
'rekening' => $rekening,
|
'rekening' => $rekening,
|
||||||
'transacties' => $returnArray
|
'transacties' => $returnArray
|
||||||
]);
|
]);
|
||||||
})->add(new Auth\Middleware());
|
})->add(new Auth\Middleware());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,9 +20,6 @@
|
|||||||
border-color: #2e6da4;
|
border-color: #2e6da4;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
.jumbotron{
|
|
||||||
//text-align: center;
|
|
||||||
}
|
|
||||||
.form-control{
|
.form-control{
|
||||||
margin: 5px 0;
|
margin: 5px 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user