83 lines
2.9 KiB
PHP
83 lines
2.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Steuerkram\Models;
|
|
|
|
use Steuerkram\Database;
|
|
|
|
class Setting
|
|
{
|
|
public static function get(): array
|
|
{
|
|
return Database::fetchOne('SELECT * FROM company_settings WHERE id = 1') ?: [];
|
|
}
|
|
|
|
public static function isTestMode(): bool
|
|
{
|
|
$s = self::get();
|
|
return (bool)($s['test_mode'] ?? 1);
|
|
}
|
|
|
|
public static function update(array $data): void
|
|
{
|
|
Database::execute(
|
|
'UPDATE company_settings SET
|
|
firma=?, inhaber=?, strasse=?, plz=?, ort=?,
|
|
telefon=?, email=?, website=?,
|
|
ust_id=?, steuernummer=?, finanzamt=?,
|
|
iban=?, bic=?, bank_name=?,
|
|
ustva_steuernummer=?, ustva_bundesland=?,
|
|
invoice_nr_prefix=?, beleg_nr_prefix=?, anlage_nr_prefix=?,
|
|
payment_days_default=?, test_mode=?, ki_vorschlag_aktiv=?, ocr_aktiv=?,
|
|
nextcloud_url=?, nextcloud_user=?, nextcloud_pass=?,
|
|
nextcloud_folder=?, nextcloud_done=?
|
|
WHERE id=1',
|
|
[
|
|
$data['firma'] ?? '',
|
|
$data['inhaber'] ?? '',
|
|
$data['strasse'] ?? '',
|
|
$data['plz'] ?? '',
|
|
$data['ort'] ?? '',
|
|
$data['telefon'] ?? null,
|
|
$data['email'] ?? null,
|
|
$data['website'] ?? null,
|
|
$data['ust_id'] ?? null,
|
|
$data['steuernummer'] ?? null,
|
|
$data['finanzamt'] ?? null,
|
|
$data['iban'] ?? null,
|
|
$data['bic'] ?? null,
|
|
$data['bank_name'] ?? null,
|
|
$data['ustva_steuernummer'] ?? null,
|
|
$data['ustva_bundesland'] ?? null,
|
|
$data['invoice_nr_prefix'] ?? 'AR',
|
|
$data['beleg_nr_prefix'] ?? 'BLG',
|
|
$data['anlage_nr_prefix'] ?? 'ANL',
|
|
(int)($data['payment_days_default'] ?? 14),
|
|
isset($data['test_mode']) ? 1 : 0,
|
|
isset($data['ki_vorschlag_aktiv']) ? 1 : 0,
|
|
isset($data['ocr_aktiv']) ? 1 : 0,
|
|
$data['nextcloud_url'] ?: null,
|
|
$data['nextcloud_user'] ?: null,
|
|
$data['nextcloud_pass'] ?: null,
|
|
$data['nextcloud_folder'] ?: '/Belege/Import',
|
|
$data['nextcloud_done'] ?: null,
|
|
]
|
|
);
|
|
}
|
|
|
|
public static function setLogo(string $path): void
|
|
{
|
|
Database::execute('UPDATE company_settings SET logo_path=? WHERE id=1', [$path]);
|
|
}
|
|
|
|
public static function deleteLogo(): void
|
|
{
|
|
$settings = self::get();
|
|
if (!empty($settings['logo_path'])) {
|
|
$fullPath = dirname(__DIR__, 2) . '/public/' . $settings['logo_path'];
|
|
if (file_exists($fullPath)) unlink($fullPath);
|
|
}
|
|
Database::execute('UPDATE company_settings SET logo_path=NULL WHERE id=1');
|
|
}
|
|
}
|