diff --git a/app/Model/Database/KufrikConnectionFactory.php b/app/Model/Database/KufrikConnectionFactory.php index 4c7df93..9813bdf 100644 --- a/app/Model/Database/KufrikConnectionFactory.php +++ b/app/Model/Database/KufrikConnectionFactory.php @@ -29,28 +29,34 @@ class KufrikConnectionFactory $identity = $this->user->getIdentity(); - // Server i Databáze se načtou z Identity přihlášeného uživatele (z tabulky LOGIN) + // Server, Databáze i FirmaId se načtou z Identity přihlášeného uživatele $host = $identity->server ?? null; $databaseName = $identity->database ?? null; + $firmaId = $identity->firma_id ?? null; - if (empty($host) || empty($databaseName)) { - throw new \LogicException('Přihlášený uživatel nemá v tabulce LOGIN definovaný SERVER nebo DATABASE.'); + if (empty($host) || empty($databaseName) || empty($firmaId)) { + throw new \LogicException('Přihlášený uživatel nemá v tabulce LOGIN definovaný SERVER, DATABASE nebo FIRMA_ID.'); } // Dynamický DSN řetězec $dsn = "sqlsrv:Server={$host};Database={$databaseName};LoginTimeout=3;"; - return new Connection( + $connection = new Connection( $dsn, $this->dbUser, $this->dbPassword, [ - 'lazy' => false, + 'lazy' => false, // Spojení musí vzniknout ihned 'driverOptions' => [ \PDO::SQLSRV_ATTR_ENCODING => \PDO::SQLSRV_ENCODING_UTF8, ] ] ); + + // NASTAVENÍ RLS KONTEXTU PRO MS SQL SERVER + $connection->query('EXEC sp_set_session_context @key = N\'FirmaId\', @value = ?', (int)$firmaId); + + return $connection; } public function createExplorer(): Explorer diff --git a/app/UI/@layout.latte b/app/UI/@layout.latte index 01d363c..952f5c6 100644 --- a/app/UI/@layout.latte +++ b/app/UI/@layout.latte @@ -109,10 +109,10 @@
| Číslo faktury | +Odběratel | +Vystaveno | +Splatnost | +Celková částka | +Stav | +Akce | +
|---|---|---|---|---|---|---|
| + + {$faktura->CISLO} + + | +
+ {$faktura->O_PRAJM ?: 'Nespecifikovaný odběratel'}
+ IČ: {$faktura->O_IC}
+ |
+ {$faktura->DATUM_VYSTAVENI|date:'d.m.Y'} | ++ + {$faktura->DATUM_SPLATNOSTI|date:'d.m.Y'} + + | ++ {($faktura->CASTKA_CELKEM ?? 0)|number:2, ',', ' '} CZK + | ++ {if $faktura->STAV === 'PAID'} + + Uhrazeno + + {else} + + Neuhrazeno + + {/if} + | ++ + | +
| + + Pro zadaný filtr (rok {$vybranyRok}{if $vybranyMesic}, měsíc {$vybranyMesic}{/if}) nebyly nalezeny žádné faktury. + | +||||||