get('/overboeking', function ($request, $response, $args) { $rekeningen = Rekeningen::getCurrentUserRekeningen(); return $this->renderer->render($response, 'overboeking.phtml', [ 'header' => Header::getHeaderData(), 'rekeningen' => $rekeningen ]); })->add(new Auth\Middleware()); $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"); } 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" => "bg" //bg 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()); } }