Statistieken
This commit is contained in:
parent
ad9f70dc32
commit
184dbd5b4e
14
assets/chart.min.js
vendored
Normal file
14
assets/chart.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -42,6 +42,19 @@ ul.nv {
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.circle {
|
||||||
|
border-radius: 50%;
|
||||||
|
color: #000000;
|
||||||
|
text-align: center;
|
||||||
|
background: #ffffff;
|
||||||
|
height: 20px;
|
||||||
|
width: 20px;
|
||||||
|
display: table-cell;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
/** Index **/
|
/** Index **/
|
||||||
.clickable {
|
.clickable {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@ -68,15 +81,3 @@ ul.nv {
|
|||||||
color: grey;
|
color: grey;
|
||||||
margin-top: 50px;
|
margin-top: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.circle {
|
|
||||||
border-radius: 50%;
|
|
||||||
color: #000000;
|
|
||||||
text-align: center;
|
|
||||||
background: #ffffff;
|
|
||||||
height: 20px;
|
|
||||||
width: 20px;
|
|
||||||
display: table-cell;
|
|
||||||
text-align: center;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
@ -1,61 +1,60 @@
|
|||||||
<?php
|
<?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;
|
namespace Inforbank\Application\Helper;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Inforbank\Application;
|
use Inforbank\Application;
|
||||||
use Inforbank\Application\Helper\Rekeningen;
|
use Inforbank\Application\Helper\Rekeningen;
|
||||||
|
|
||||||
/**
|
class Overboekingen {
|
||||||
* Description of Overboekingen
|
|
||||||
*
|
|
||||||
* @author Sjelm
|
|
||||||
*/
|
|
||||||
class Overboekingen
|
|
||||||
{
|
|
||||||
|
|
||||||
private static function isValidFloat($bedrag){
|
public static $EIGENAAR = 1;
|
||||||
|
public static $IBAN = 2;
|
||||||
|
public static $BANK = 3;
|
||||||
|
public static $BESTAAN = 4;
|
||||||
|
public static $ZELFDE = 5;
|
||||||
|
public static $GETAL = 6;
|
||||||
|
public static $POSITIEF = 7;
|
||||||
|
public static $SALDO = 8;
|
||||||
|
public static $OMSCHRIJVING = 9;
|
||||||
|
|
||||||
|
private static function isValidFloat($bedrag) {
|
||||||
$hasdecimal = false;
|
$hasdecimal = false;
|
||||||
$decimals = 0;
|
$decimals = 0;
|
||||||
$voorcijfers = 0;
|
$voorcijfers = 0;
|
||||||
for($i = 0; $i < strlen($bedrag); $i++){
|
for ($i = 0; $i < strlen($bedrag); $i++) {
|
||||||
$char = substr($bedrag, $i, 1);
|
$char = substr($bedrag, $i, 1);
|
||||||
$ascii = ord($char);
|
$ascii = ord($char);
|
||||||
if($hasdecimal){
|
if ($hasdecimal) {
|
||||||
if($char === "." || $char === ","){
|
if ($char === "." || $char === ",") {
|
||||||
//Twee komma's
|
//Twee komma's
|
||||||
return false;
|
return false;
|
||||||
}else if($ascii >= ord("0") && $ascii <= ord("9")){
|
} else if ($ascii >= ord("0") && $ascii <= ord("9")) {
|
||||||
$decimals++;
|
$decimals++;
|
||||||
if($decimals > 2){
|
if ($decimals > 2) {
|
||||||
//Meer dan twee cijfers achter de komma
|
//Meer dan twee cijfers achter de komma
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
//Ongeldig teken
|
//Ongeldig teken
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}else if($char === "." || $char === ","){
|
} else if ($char === "." || $char === ",") {
|
||||||
$hasdecimal = true;
|
$hasdecimal = true;
|
||||||
}else if($ascii >= ord("0") || $ascii <= ord("9")){
|
} else if ($ascii >= ord("0") || $ascii <= ord("9")) {
|
||||||
$voorcijfers++;
|
$voorcijfers++;
|
||||||
if($voorcijfers > 9){
|
if ($voorcijfers > 9) {
|
||||||
//Te veel cijfers voor de komma
|
//Te veel cijfers voor de komma
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
//Ongeldig teken
|
//Ongeldig teken
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param IBAN $van De rekening waar het bedrag vanaf wordt gehaald
|
* @param IBAN $van De rekening waar het bedrag vanaf wordt gehaald
|
||||||
@ -64,59 +63,50 @@ class Overboekingen
|
|||||||
* @param string $omschrijving De omschrijving van de overoeking
|
* @param string $omschrijving De omschrijving van de overoeking
|
||||||
* $param string $type Het type overboeking
|
* $param string $type Het type overboeking
|
||||||
*/
|
*/
|
||||||
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type)
|
public static function createOverboeking($van, $naar, $bedrag, $omschrijving, $type) {
|
||||||
{
|
$vanRekening = Rekeningen::isEigenRekeningIBAN($van);
|
||||||
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
|
||||||
$vanRekening = false;
|
|
||||||
//Controleer of de rekening wel van de ingelogde klant is
|
|
||||||
foreach ($rekeningen as $rek) {
|
|
||||||
if ($rek['iban'] === $van) {
|
|
||||||
$vanRekening = $rek;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$vanRekening) {
|
if (!$vanRekening) {
|
||||||
//error: rekening is niet van klant
|
//error: rekening is niet van klant
|
||||||
throw new Exception("U bent niet de eigenaar van deze rekening");
|
throw new Exception("U bent niet de eigenaar van deze rekening", Overboekingen::$EIGENAAR);
|
||||||
}
|
}
|
||||||
$ibanHelper = new IBAN();
|
$ibanHelper = new IBAN();
|
||||||
if (!$ibanHelper->isValidIBAN($naar)) {
|
if (!$ibanHelper->isValidIBAN($naar)) {
|
||||||
//error: ongeldige iban
|
//error: ongeldige iban
|
||||||
throw new Exception("De IBAN van de ontvanger is ongeldig");
|
throw new Exception("De IBAN van de ontvanger is ongeldig", Overboekingen::$IBAN);
|
||||||
} elseif (!($ibanHelper->getLand($naar) == "NL" && $ibanHelper->getBank($naar) === "INFO")) {
|
} elseif (!($ibanHelper->getLand($naar) == "NL" && $ibanHelper->getBank($naar) === "INFO")) {
|
||||||
//error: andere bank
|
//error: andere bank
|
||||||
throw new Exception("U kunt geen overboeking naar een andere bank doen");
|
throw new Exception("U kunt geen overboeking naar een andere bank doen", Overboekingen::$BANK);
|
||||||
}
|
}
|
||||||
$naarRekeningnr = $ibanHelper->getRekeningNummer($naar);
|
$naarRekeningnr = $ibanHelper->getRekeningNummer($naar);
|
||||||
|
|
||||||
//Controleer of de rekening bestaat
|
//Controleer of de rekening bestaat
|
||||||
$db = Application::getContainer()->db;
|
$db = Application::getContainer()->db;
|
||||||
$naarRekening = $db->rekeningen->where("rekeningnr", $naarRekeningnr);
|
$naarRekening = $db->rekeningen->where("rekeningnr", $naarRekeningnr);
|
||||||
if(count($naarRekening) !== 1){
|
if (count($naarRekening) !== 1) {
|
||||||
//error: rekening bestaat niet
|
//error: rekening bestaat niet
|
||||||
throw new Exception("De ontvangende rekening bestaat niet");
|
throw new Exception("De ontvangende rekening bestaat niet", Overboekingen::$BESTAAN);
|
||||||
}
|
}
|
||||||
foreach($naarRekening as $rekening){
|
foreach ($naarRekening as $rekening) {
|
||||||
$naarid = $rekening['id'];
|
$naarid = $rekening['id'];
|
||||||
}
|
}
|
||||||
if ($naarRekeningnr == $vanRekening['nr']) {
|
if ($naarRekeningnr == $vanRekening['nr']) {
|
||||||
//error: afzender is hetzelfde als ontvanger
|
//error: afzender is hetzelfde als ontvanger
|
||||||
throw new Exception("De ontvangende rekening is hetzelfde als de verzendende");
|
throw new Exception("De ontvangende rekening is hetzelfde als de verzendende", Overboekingen::$ZELFDE);
|
||||||
}
|
}
|
||||||
if(!Overboekingen::isValidFloat($bedrag)){
|
if (!Overboekingen::isValidFloat($bedrag)) {
|
||||||
throw new Exception("Geef als bedrag een getal op met maximaal 9 cijfers voor en 2 na de komma");
|
throw new Exception("Geef als bedrag een getal op met maximaal 9 cijfers voor en 2 na de komma", Overboekingen::$GETAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if($bedrag <= 0){
|
if ($bedrag <= 0) {
|
||||||
throw new Exception("Het bedrag moet positief zijn");
|
throw new Exception("Het bedrag moet positief zijn", Overboekingen::$POSITIEF);
|
||||||
}
|
}
|
||||||
$bedragvalue = doubleval(str_replace(",", ".", $bedrag));
|
$bedragvalue = doubleval(str_replace(",", ".", $bedrag));
|
||||||
if($bedragvalue > $vanRekening['saldo']){
|
if ($bedragvalue > $vanRekening['saldo']) {
|
||||||
throw new Exception("Te laag saldo");
|
throw new Exception("Te laag saldo", Overboekingen::$SALDO);
|
||||||
}
|
}
|
||||||
if (strlen($omschrijving) > 40 && $type !== "id") {
|
if (strlen($omschrijving) > 40 && $type !== "id") {
|
||||||
//error: te lange omschrijving
|
//error: te lange omschrijving
|
||||||
throw new Exception("De omschrijving is te lang");
|
throw new Exception("De omschrijving is te lang", Overboekingen::$OMSCHRIJVING);
|
||||||
}
|
}
|
||||||
//Voeg transactie toe
|
//Voeg transactie toe
|
||||||
$db->transacties->insert([
|
$db->transacties->insert([
|
||||||
@ -124,24 +114,26 @@ class Overboekingen
|
|||||||
"naar" => $naarRekeningnr,
|
"naar" => $naarRekeningnr,
|
||||||
"bedrag" => $bedrag,
|
"bedrag" => $bedrag,
|
||||||
"type" => $type,
|
"type" => $type,
|
||||||
"omschrijving" => $omschrijving
|
"omschrijving" => $omschrijving,
|
||||||
|
"datum" => date("Y-m-d")
|
||||||
]);
|
]);
|
||||||
|
|
||||||
//Wijzig saldo
|
//Wijzig saldo
|
||||||
$db->rekeningen->where("rekeningnr", $vanRekening['nr'])->update([
|
$db->rekeningen->where("rekeningnr", $vanRekening['nr'])->update([
|
||||||
"saldo" => $vanRekening['saldo'] - $bedragvalue
|
"saldo" => $vanRekening['saldo'] - $bedragvalue
|
||||||
]);
|
]);
|
||||||
$naarRekening[$naarid]->update([
|
$naarRekening[$naarid]->update([
|
||||||
"saldo" => $naarRekening[$naarid]['saldo'] + $bedragvalue
|
"saldo" => $naarRekening[$naarid]['saldo'] + $bedragvalue
|
||||||
]);
|
]);
|
||||||
//Stuur bericht bij laag saldo
|
//Stuur bericht bij laag saldo
|
||||||
if($vanRekening['saldo'] - $bedragvalue < 20){
|
if ($vanRekening['saldo'] - $bedragvalue < 20) {
|
||||||
Berichten::newBericht(Application::getContainer()->auth->getUserID(), "De InforBank", "U heeft een laag saldo");
|
Berichten::newBericht(Application::getContainer()->auth->getUserID(), "De InforBank", "U heeft een laag saldo");
|
||||||
}
|
}
|
||||||
//In de database worden de getallen met 10 cijfers voor de komma opgeslagen
|
//In de database worden de getallen met 10 cijfers voor de komma opgeslagen
|
||||||
//Als het saldo te hoog wordt heb je een probleem
|
//Als het saldo te hoog wordt heb je een probleem
|
||||||
if($naarRekening[$naarid]['saldo'] + $bedragvalue > 9000000000){
|
if ($naarRekening[$naarid]['saldo'] + $bedragvalue > 9000000000) {
|
||||||
Berichten::newBericht($naarRekening[$naarid]['klantid'], "De InforBank", "Uw saldo is te hoog");
|
Berichten::newBericht($naarRekening[$naarid]['klantid'], "De InforBank", "Uw saldo is te hoog");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -44,4 +44,30 @@ class Rekeningen
|
|||||||
|
|
||||||
return $returnArray;
|
return $returnArray;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function isEigenRekeningIBAN($iban){
|
||||||
|
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||||
|
$vanRekening = false;
|
||||||
|
//Controleer of de rekening wel van de ingelogde klant is
|
||||||
|
foreach ($rekeningen as $rek) {
|
||||||
|
if ($rek['iban'] === $iban) {
|
||||||
|
$vanRekening = $rek;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $vanRekening;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function isEigenRekeningnr($nr){
|
||||||
|
$rekeningen = Rekeningen::getCurrentUserRekeningen();
|
||||||
|
$vanRekening = false;
|
||||||
|
//Controleer of de rekening wel van de ingelogde klant is
|
||||||
|
foreach ($rekeningen as $rek) {
|
||||||
|
if ($rek['nr'] === $nr) {
|
||||||
|
$vanRekening = $rek;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $vanRekening;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
47
src/Application/Helper/Statistieken.php
Normal file
47
src/Application/Helper/Statistieken.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Inforbank\Application\Helper;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Inforbank\Application;
|
||||||
|
|
||||||
|
class Statistieken {
|
||||||
|
public static $EIGENAAR = 1;
|
||||||
|
|
||||||
|
public static function getSaldoverloop($dagen, $rekeningNummer){
|
||||||
|
if(!Rekeningen::isEigenRekeningnr($rekeningNummer)){
|
||||||
|
throw new Exception("Dit is niet uw eigen rekening", Statistieken::$EIGENAAR);
|
||||||
|
}
|
||||||
|
$xas = array();
|
||||||
|
for($i = $dagen; $i >= 0; $i--){
|
||||||
|
$xas[] = date("d M", strtotime("-$i day"));
|
||||||
|
}
|
||||||
|
$container = Application::getContainer();
|
||||||
|
$user = $container->auth->getUserID();
|
||||||
|
$db = $container->db;
|
||||||
|
$saldo = $db->rekeningen->where("rekeningnr", $rekeningNummer)[array("rekeningnr" => $rekeningNummer)]['saldo'];
|
||||||
|
$eraf = $db->transacties->select("datum, SUM(bedrag) as bedr")->where("van", $rekeningNummer)
|
||||||
|
->group("datum")->order("datum ASC, id DESC");
|
||||||
|
$erbij = $db->transacties->select("datum, SUM(bedrag) as bedr")->where("naar", $rekeningNummer)
|
||||||
|
->group("datum")->order("datum ASC, id DESC");
|
||||||
|
$huidigSaldo = (double)$saldo;
|
||||||
|
$yas = array($huidigSaldo);
|
||||||
|
for($i = 1; $i <= $dagen; $i++){
|
||||||
|
$af = (double)$eraf[array("datum" => date("Y-m-d", strtotime("-" . $i . " day")))]['bedr'];
|
||||||
|
$bij = (double)$erbij[array("datum" => date("Y-m-d", strtotime("-" . $i . " day")))]['bedr'];
|
||||||
|
if(!isset($af)){
|
||||||
|
$af = 0;
|
||||||
|
}
|
||||||
|
if(!isset($bij)){
|
||||||
|
$bij = 0;
|
||||||
|
}
|
||||||
|
$huidigSaldo += $af;
|
||||||
|
$huidigSaldo -= $bij;
|
||||||
|
array_unshift($yas, $huidigSaldo);
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
"x-as" => $xas,
|
||||||
|
"y-as" => $yas
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
@ -47,7 +47,7 @@ class Overboeking
|
|||||||
Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $naar, $bedrag, $omschrijving, "bg");
|
Overboekingen::createOverboeking($ibanhelper->getIBAN($van), $naar, $bedrag, $omschrijving, "bg");
|
||||||
return Redirect::create($request, $response, "/rekeningen/$van");
|
return Redirect::create($request, $response, "/rekeningen/$van");
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return Redirect::create($request, $response, "/overboeking?error=" . $e->getMessage() . "");
|
return Redirect::create($request, $response, "/overboeking?error=" . $e->getCode() . "");
|
||||||
}
|
}
|
||||||
})->add(new Middleware());
|
})->add(new Middleware());
|
||||||
}
|
}
|
||||||
|
36
src/Application/Statistieken.php
Normal file
36
src/Application/Statistieken.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Informatica Eindproject D4p
|
||||||
|
* 6in3, Stedelijk Gymnasium Nijmegen
|
||||||
|
* Docent: Hans de Wolf
|
||||||
|
*
|
||||||
|
* ==================
|
||||||
|
*
|
||||||
|
* Daniel Boutros,
|
||||||
|
* Christiaan Goossens,
|
||||||
|
* Jelmer Hinssen
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Inforbank\Application;
|
||||||
|
|
||||||
|
use Inforbank\Application\Auth\Middleware;
|
||||||
|
use Inforbank\Application\Helper\Header;
|
||||||
|
use Inforbank\Application\Helper\Statistieken as StatistiekenHelper;
|
||||||
|
use Slim\App;
|
||||||
|
|
||||||
|
class Statistieken {
|
||||||
|
public function __construct(App $app)
|
||||||
|
{
|
||||||
|
$app->get('/statistieken/{rekeningnummer}', function ($request, $response, $args) {
|
||||||
|
$verloop = StatistiekenHelper::getSaldoverloop(30, $args['rekeningnummer']);
|
||||||
|
return $this->renderer->render($response, "statistieken.phtml", [
|
||||||
|
"header" => Header::getHeaderData(),
|
||||||
|
"statistieken" => [
|
||||||
|
"x-as" => $verloop['x-as'],
|
||||||
|
"y-as" => $verloop['y-as']
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
})->add(new Middleware());
|
||||||
|
}
|
||||||
|
}
|
@ -45,7 +45,8 @@ class Transacties {
|
|||||||
}
|
}
|
||||||
$container = Application::getContainer();
|
$container = Application::getContainer();
|
||||||
$db = $container->db;
|
$db = $container->db;
|
||||||
$transacties = $db->transacties->where('van', '12345678')->or('naar', $rekeningnr);
|
$transacties = $db->transacties->where('van', '12345678')->or('naar', $rekeningnr)
|
||||||
|
->order("datum DESC, id DESC");
|
||||||
|
|
||||||
$returnArray = array();
|
$returnArray = array();
|
||||||
|
|
||||||
@ -55,7 +56,8 @@ class Transacties {
|
|||||||
"naar" => $ibanhelper->getIBAN($transactie['naar']),
|
"naar" => $ibanhelper->getIBAN($transactie['naar']),
|
||||||
"bedrag" => $transactie['bedrag'],
|
"bedrag" => $transactie['bedrag'],
|
||||||
"type" => $transactie['type'],
|
"type" => $transactie['type'],
|
||||||
"omschrijving" => $transactie['omschrijving']
|
"omschrijving" => $transactie['omschrijving'],
|
||||||
|
"datum" => $transactie['datum']
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return $this->renderer->render($response, 'transacties.phtml', [
|
return $this->renderer->render($response, 'transacties.phtml', [
|
||||||
|
@ -134,6 +134,7 @@ new Inforbank\Application\Transacties($app);
|
|||||||
new Inforbank\Application\Overboeking($app);
|
new Inforbank\Application\Overboeking($app);
|
||||||
new Inforbank\Application\Rekeningen($app);
|
new Inforbank\Application\Rekeningen($app);
|
||||||
new Inforbank\Application\Berichten($app);
|
new Inforbank\Application\Berichten($app);
|
||||||
|
new Inforbank\Application\Statistieken($app);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Idob
|
* Idob
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
//De functie money_format bestaat alleen op systemen met strfmon, dus niet op Windows
|
||||||
|
//Om een foutmelding tijdens het testen te voorkomen definiëren we deze functie
|
||||||
|
//als money_format niet bestaat
|
||||||
|
if(!function_exists("money_format")){
|
||||||
|
function money_format($format, $value){
|
||||||
|
return "€ " . $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
@ -5,6 +15,7 @@
|
|||||||
<title>Inforbank</title>
|
<title>Inforbank</title>
|
||||||
<link rel="stylesheet" href="<?= $header['base'] ?>assets/css/main.css">
|
<link rel="stylesheet" href="<?= $header['base'] ?>assets/css/main.css">
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
|
||||||
|
<script src="<?= $header['base']?>assets/chart.min.js"></script>
|
||||||
<base href="<?= $header['base'] ?>">
|
<base href="<?= $header['base'] ?>">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
35
templates/statistieken.phtml
Normal file
35
templates/statistieken.phtml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?php include '__header.phtml'; ?>
|
||||||
|
<canvas id="myChart" height="100"></canvas>
|
||||||
|
<script>
|
||||||
|
function newDate(days) {
|
||||||
|
return moment().add(days, 'd');
|
||||||
|
}
|
||||||
|
Chart.defaults.global.legend.display = false;//Geen legenda
|
||||||
|
var ctx = document.getElementById("myChart");
|
||||||
|
var myChart = new Chart(ctx, {
|
||||||
|
type: "line",
|
||||||
|
options: {
|
||||||
|
title: {
|
||||||
|
display: true,
|
||||||
|
text: "Saldo van de afgelopen maand"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
labels: <?php echo json_encode($statistieken['x-as']); ?>,
|
||||||
|
datasets: [{
|
||||||
|
label: "Saldo",
|
||||||
|
data: <?php echo json_encode($statistieken['y-as']); ?>,
|
||||||
|
borderWidth: 2,
|
||||||
|
lineTension: 0,
|
||||||
|
fill: false,
|
||||||
|
borderColor: "black",
|
||||||
|
pointRadius: 5,
|
||||||
|
pointBorderColor: "rgba(0, 0, 0, 0)", //Onzichtbare punten
|
||||||
|
pointBackgroundColor: "rgba(0, 0, 0, 0)",
|
||||||
|
pointHoverRadius: 5,
|
||||||
|
pointHoverBackgroundColor: "black"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php include '__footer.phtml'; ?>
|
@ -10,7 +10,9 @@ if (!$rekening) {
|
|||||||
} else {
|
} else {
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<h2 class="page-header">Transactieoverzicht<a class="btn btn-default pull-right" href="overboeking" role="button">Nieuwe overboeking</a></h2>
|
<h2 class="page-header">Transactieoverzicht
|
||||||
|
<a class="btn btn-default pull-right" href="overboeking" role="button">Nieuwe overboeking</a>
|
||||||
|
<a class="btn btn-default pull-right" href="statistieken/<?= $rekening['nr']?>" role="button">Statistieken</a></h2>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -44,7 +46,7 @@ foreach ($transacties as $transactie) {
|
|||||||
$transactie['omschrijving'] = "";
|
$transactie['omschrijving'] = "";
|
||||||
}
|
}
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
echo "<td></td>";
|
echo "<td>" . $transactie['datum'] . "</td>";
|
||||||
echo "<td>" . $transactie['type'] . "</td>\n";
|
echo "<td>" . $transactie['type'] . "</td>\n";
|
||||||
echo "<td>" . $transactie['omschrijving'] . "</td>\n";
|
echo "<td>" . $transactie['omschrijving'] . "</td>\n";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user