From c6e68fd1e3fed026f48a29adc8461503fe67e1f9 Mon Sep 17 00:00:00 2001 From: Jukka Lampikoski Date: Tue, 10 Mar 2026 19:09:45 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20lis=C3=A4tiedot-kentt=C3=A4=20asiakasyh?= =?UTF-8?q?teyksiin=20(kytkin,=20IP,=20VLAN=20yms.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- api.php | 5 +++-- db.php | 7 +++++-- script.js | 3 +++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/api.php b/api.php index f05197e..0e5f194 100644 --- a/api.php +++ b/api.php @@ -597,10 +597,11 @@ function parseLiittymat(array $input): array { 'hinta' => floatval($l['hinta'] ?? 0), 'sopimuskausi' => trim($l['sopimuskausi'] ?? ''), 'alkupvm' => trim($l['alkupvm'] ?? ''), + 'lisatiedot' => trim($l['lisatiedot'] ?? ''), ]; } if (empty($liittymat)) { - $liittymat[] = ['asennusosoite' => '', 'postinumero' => '', 'kaupunki' => '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '']; + $liittymat[] = ['asennusosoite' => '', 'postinumero' => '', 'kaupunki' => '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '', 'lisatiedot' => '']; } return $liittymat; } @@ -1559,7 +1560,7 @@ switch ($action) { 'elaskuvalittaja' => '', 'ytunnus' => '', 'lisatiedot' => $lead['muistiinpanot'] ?? '', - 'liittymat' => [['asennusosoite' => $lead['osoite'] ?? '', 'postinumero' => '', 'kaupunki' => $lead['kaupunki'] ?? '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '']], + 'liittymat' => [['asennusosoite' => $lead['osoite'] ?? '', 'postinumero' => '', 'kaupunki' => $lead['kaupunki'] ?? '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '', 'lisatiedot' => '']], 'luotu' => date('Y-m-d H:i:s'), ]; dbSaveCustomer($companyId, $customer); diff --git a/db.php b/db.php index c22013a..cd7bfd5 100644 --- a/db.php +++ b/db.php @@ -408,6 +408,7 @@ function initDatabase(): void { "ALTER TABLE customers ADD COLUMN priority_emails TEXT DEFAULT '' AFTER lisatiedot", "ALTER TABLE companies ADD COLUMN enabled_modules TEXT DEFAULT '' AFTER cors_origins", "ALTER TABLE users MODIFY COLUMN role ENUM('superadmin','admin','user') DEFAULT 'user'", + "ALTER TABLE customer_connections ADD COLUMN lisatiedot TEXT DEFAULT '' AFTER alkupvm", ]; foreach ($alters as $sql) { try { $db->query($sql); } catch (\Throwable $e) { /* sarake on jo olemassa / jo ajettu */ } @@ -702,6 +703,7 @@ function dbLoadCustomers(string $companyId): array { 'hinta' => (float)($conn['hinta'] ?? 0), 'sopimuskausi' => $conn['sopimuskausi'] ?? '', 'alkupvm' => $conn['alkupvm'] ?? '', + 'lisatiedot' => $conn['lisatiedot'] ?? '', ]; }, $conns); unset($c['company_id']); @@ -755,8 +757,8 @@ function dbSaveCustomer(string $companyId, array $customer): void { if (!empty($customer['liittymat'])) { foreach ($customer['liittymat'] as $l) { _dbExecute(" - INSERT INTO customer_connections (customer_id, asennusosoite, postinumero, kaupunki, liittymanopeus, hinta, sopimuskausi, alkupvm) - VALUES (?, ?, ?, ?, ?, ?, ?, ?) + INSERT INTO customer_connections (customer_id, asennusosoite, postinumero, kaupunki, liittymanopeus, hinta, sopimuskausi, alkupvm, lisatiedot) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) ", [ $customer['id'], $l['asennusosoite'] ?? '', @@ -766,6 +768,7 @@ function dbSaveCustomer(string $companyId, array $customer): void { $l['hinta'] ?? 0, $l['sopimuskausi'] ?? '', $l['alkupvm'] ?? '', + $l['lisatiedot'] ?? '', ]); } } diff --git a/script.js b/script.js index d3e3983..55de48d 100644 --- a/script.js +++ b/script.js @@ -485,6 +485,7 @@ function showDetail(id) {
Sopimuskausi
${l.sopimuskausi ? l.sopimuskausi + ' kk' : '-'}
Alkaen
${detailVal(l.alkupvm)}
+ ${l.lisatiedot ? `
Lisätiedot
${esc(l.lisatiedot)}
` : ''} `; }).join(''); const totalH = liittymat.reduce((s, l) => s + (parseFloat(l.hinta) || 0), 0); @@ -599,6 +600,7 @@ function createLiittymaRow(data = {}, index = 0) {
+
`; div.querySelector('.btn-remove-row').addEventListener('click', () => { div.remove(); renumberLiittymaRows(); }); return div; @@ -620,6 +622,7 @@ function collectLiittymatFromForm() { hinta: row.querySelector('.l-hinta').value, sopimuskausi: row.querySelector('.l-sopimuskausi').value, alkupvm: row.querySelector('.l-alkupvm').value, + lisatiedot: row.querySelector('.l-lisatiedot').value, })); }