Dokumenttikansiot asiakaskohtaisiksi

- Lisää customer_id sarake document_folders-tauluun (ALTER TABLE migraatio)
- dbLoadFolders() tukee nyt customer_id suodatusta
- dbSaveFolder() tallentaa customer_id:n kansioon
- API document_folders endpoint vastaanottaa customer_id parametrin
- JS: kansiot ladataan ja luodaan asiakaskohtaisesti (currentDocCustomerId)
- Jokaisen asiakkaan kansiorakenne on nyt itsenäinen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 10:04:03 +02:00
parent 711193e1ce
commit 3fe45b217c
3 changed files with 15 additions and 8 deletions

11
db.php
View File

@@ -615,6 +615,7 @@ function initDatabase(): void {
"ALTER TABLE documents ADD COLUMN max_versions INT DEFAULT 10 AFTER current_version",
"ALTER TABLE document_versions ADD COLUMN content MEDIUMTEXT DEFAULT NULL AFTER mime_type",
"ALTER TABLE devices ADD COLUMN laitetila_id VARCHAR(20) DEFAULT NULL AFTER site_id",
"ALTER TABLE document_folders ADD COLUMN customer_id VARCHAR(20) DEFAULT NULL AFTER company_id",
];
foreach ($alters as $sql) {
try { $db->query($sql); } catch (\Throwable $e) { /* sarake on jo olemassa / jo ajettu */ }
@@ -1749,7 +1750,10 @@ function dbDeleteTodoSubtask(string $subtaskId): void {
// ==================== DOKUMENTTIKANSIOT ====================
function dbLoadFolders(string $companyId): array {
function dbLoadFolders(string $companyId, ?string $customerId = null): array {
if ($customerId) {
return _dbFetchAll("SELECT * FROM document_folders WHERE company_id = ? AND customer_id = ? ORDER BY name", [$companyId, $customerId]);
}
return _dbFetchAll("SELECT * FROM document_folders WHERE company_id = ? ORDER BY name", [$companyId]);
}
@@ -1757,12 +1761,13 @@ function dbSaveFolder(string $companyId, array $folder): string {
$id = $folder['id'] ?? generateId();
$now = date('Y-m-d H:i:s');
_dbExecute("
INSERT INTO document_folders (id, company_id, name, parent_id, created_by, luotu)
VALUES (:id, :companyId, :name, :parentId, :createdBy, :luotu)
INSERT INTO document_folders (id, company_id, customer_id, name, parent_id, created_by, luotu)
VALUES (:id, :companyId, :customerId, :name, :parentId, :createdBy, :luotu)
ON DUPLICATE KEY UPDATE name = VALUES(name), parent_id = VALUES(parent_id)
", [
'id' => $id,
'companyId' => $companyId,
'customerId' => !empty($folder['customer_id']) ? $folder['customer_id'] : null,
'name' => $folder['name'] ?? '',
'parentId' => !empty($folder['parent_id']) ? $folder['parent_id'] : null,
'createdBy' => $folder['created_by'] ?? '',