Overboekingen helper
This commit is contained in:
		
							
								
								
									
										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(); | ||||
|  | ||||
| @@ -40,9 +39,9 @@ class Transacties | ||||
|             } | ||||
|             if (!$rekening) { | ||||
|                 return $this->renderer->render($response, 'transacties.phtml', [ | ||||
|                 'klant' => $klant, | ||||
|                 'rekening' => false | ||||
|             ]); | ||||
|                             'klant' => $klant, | ||||
|                             'rekening' => false | ||||
|                 ]); | ||||
|             } | ||||
|             $container = Application::getContainer(); | ||||
|             $db = $container->db; | ||||
| @@ -52,17 +51,19 @@ class Transacties | ||||
|  | ||||
|             foreach ($transacties as $transactie) { | ||||
|                 $returnArray[] = array( | ||||
|                             "van" => $ibanhelper->getIBAN($transactie['van']), | ||||
|                             "naar" => $ibanhelper->getIBAN($transactie['naar']), | ||||
|                             "bedrag" => $transactie['bedrag'], | ||||
|                             "type" => $transactie['type'] | ||||
|                     ); | ||||
|                 "van" => $ibanhelper->getIBAN($transactie['van']), | ||||
|                 "naar" => $ibanhelper->getIBAN($transactie['naar']), | ||||
|                 "bedrag" => $transactie['bedrag'], | ||||
|                 "type" => $transactie['type'], | ||||
|                 "omschrijving" => $transactie['omschrijving'] | ||||
|                 ); | ||||
|             } | ||||
|             return $this->renderer->render($response, 'transacties.phtml', [ | ||||
|                 'header' => Header::getHeaderData(), | ||||
|                 'rekening' => $rekening, | ||||
|         'transacties' => $returnArray | ||||
|                         'header' => Header::getHeaderData(), | ||||
|                         'rekening' => $rekening, | ||||
|                         'transacties' => $returnArray | ||||
|             ]); | ||||
|         })->add(new Auth\Middleware()); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user