1
0

Overboekingen

Je kan een soort van een overboeking doen
This commit is contained in:
JelmerHinssen
2017-03-30 15:49:27 +02:00
parent 32cb70e6d9
commit c275c8f874
4 changed files with 152 additions and 65 deletions

View File

@ -14,26 +14,80 @@
namespace Inforbank\Application;
use \Slim\App;
use Inforbank\Application\Helper\Klant;
use Inforbank\Application\Helper\Rekeningen;
use Inforbank\Application\Helper\IBAN;
use Inforbank\Application;
use Inforbank\Application\Helper\IBAN;
use Inforbank\Application\Helper\Klant;
use Inforbank\Application\Helper\Redirect;
use Inforbank\Application\Helper\Rekeningen;
use Slim\App;
class Overboeking
{
public function __construct(App $app)
{
class Overboeking {
public function __construct(App $app) {
$app->get('/overboeking', function ($request, $response, $args) {
$klant = Klant::getCurrentUser();
$rekeningen = Rekeningen::getCurrentUserRekeningen();
return $this->renderer->render($response, 'overboeking.phtml', [
'klant' => $klant,
'rekeningen' => $rekeningen
'klant' => $klant,
'rekeningen' => $rekeningen
]);
});
$app->post('/overboeking', function ($request, $response, $args) {
$post = $request->getParsedBody();
$van = $post['van'];
$naar = $post['naar'];
$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;
}
}
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");
} else if (!($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
return Redirect::create($request, $response, "/");
});
}
}