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. | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user