- FinTS-Abruf für Comdirect/DKB/Sparkassen via nemiah/php-fints (4.1) inkl. photoTAN-Eingabe-Modal und Multi-Konto-Auswahl - Neue Tabelle bank_sources (CSV/API/FinTS) ersetzt bank_import_formats und bank_connections, Backfill in Migration 068 - Symmetrische Verschlüsselung sensibler Felder (PayPal-Signature, FinTS-PIN) mit AES-256-GCM, APP_KEY in .env - Routes /bank/fints* → /bank/direkt*; "+ Neue Bank…"-Dialog erlaubt freie API/FinTS-Anbieter - Scripts/encrypt_bank_secrets.php als idempotenter Migrations-Helfer - Neue Tests 36 (Crypto) und 37 (BankSource)
36 lines
916 B
PHP
36 lines
916 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Steuerkram\Models;
|
|
|
|
use Steuerkram\Database;
|
|
|
|
class BankProvider
|
|
{
|
|
public static function all(): array
|
|
{
|
|
return Database::fetchAll('SELECT * FROM bank_providers ORDER BY name');
|
|
}
|
|
|
|
public static function find(int $id): ?array
|
|
{
|
|
$row = Database::fetchOne('SELECT * FROM bank_providers WHERE id = ?', [$id]);
|
|
return $row ?: null;
|
|
}
|
|
|
|
public static function findByName(string $name): ?array
|
|
{
|
|
$row = Database::fetchOne('SELECT * FROM bank_providers WHERE name = ?', [$name]);
|
|
return $row ?: null;
|
|
}
|
|
|
|
public static function create(string $name, string $verbindungstyp = 'FinTS'): int
|
|
{
|
|
Database::execute(
|
|
'INSERT INTO bank_providers (name, verbindungstyp) VALUES (?, ?)',
|
|
[$name, $verbindungstyp]
|
|
);
|
|
return (int)Database::lastInsertId();
|
|
}
|
|
}
|