<?php

/**
 *  Informatica Eindproject D4p
 *  6in3, Stedelijk Gymnasium Nijmegen
 *  Docent: Hans de Wolf
 *
 *  ==================
 *
 *  Daniel Boutros,
 *  Christiaan Goossens,
 *  Jelmer Hinssen
 */

namespace Inforbank\Application;

use \Slim\App;
use Inforbank\Application\Helper\Header;
use Inforbank\Application\Helper\Rekeningen;
use Inforbank\Application\Helper\IBAN;
use Inforbank\Application;

class Transacties
{
    public function __construct(App $app)
    {
        $app->get('/rekeningen/{rekeningnummer}', function ($request, $response, $args) {
            $rekeningen = Rekeningen::getCurrentUserRekeningen();
            $rekening = $rekening = Rekeningen::isEigenRekeningnr($args['rekeningnummer']);
            $rekeningnr = $args['rekeningnummer'];
            if (!$rekening) {
                return $this->renderer->render($response, 'transacties.phtml', [
                    'header' => Header::getHeaderData(),
                    'rekening' => false
                ]);
            }
            $container = Application::getContainer();
            $db = $container->db;
            $transacties = $db->transacties->where('van', $rekeningnr)->or('naar', $rekeningnr)
                                ->order("datum DESC, id DESC");

            $returnArray = array();

            foreach ($transacties as $transactie) {
                $returnArray[] = array(
                "van" => IBAN::getIBAN($transactie['van']),
                "naar" => IBAN::getIBAN($transactie['naar']),
                "bedrag" => $transactie['bedrag'],
                "type" => $transactie['type'],
                "omschrijving" => $transactie['omschrijving'],
                "datum" => $transactie['datum']
                );
            }
            return $this->renderer->render($response, 'transacties.phtml', [
                'header' => Header::getHeaderData(),
                'rekening' => $rekening,
                'transacties' => $returnArray,
                'geslaagd' => $_GET['geslaagd']
            ]);
        })->add(new Auth\Middleware());
    }
}
