Overboekingen helper
parent
7db872748e
commit
c8521ff824
@ -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