diff --git a/api.php b/api.php index 0e5f194..e2c04e3 100644 --- a/api.php +++ b/api.php @@ -597,11 +597,14 @@ function parseLiittymat(array $input): array { 'hinta' => floatval($l['hinta'] ?? 0), 'sopimuskausi' => trim($l['sopimuskausi'] ?? ''), 'alkupvm' => trim($l['alkupvm'] ?? ''), - 'lisatiedot' => trim($l['lisatiedot'] ?? ''), + 'vlan' => trim($l['vlan'] ?? ''), + 'laite' => trim($l['laite'] ?? ''), + 'portti' => trim($l['portti'] ?? ''), + 'ip' => trim($l['ip'] ?? ''), ]; } if (empty($liittymat)) { - $liittymat[] = ['asennusosoite' => '', 'postinumero' => '', 'kaupunki' => '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '', 'lisatiedot' => '']; + $liittymat[] = ['asennusosoite' => '', 'postinumero' => '', 'kaupunki' => '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '', 'vlan' => '', 'laite' => '', 'portti' => '', 'ip' => '']; } return $liittymat; } @@ -1560,7 +1563,7 @@ switch ($action) { 'elaskuvalittaja' => '', 'ytunnus' => '', 'lisatiedot' => $lead['muistiinpanot'] ?? '', - 'liittymat' => [['asennusosoite' => $lead['osoite'] ?? '', 'postinumero' => '', 'kaupunki' => $lead['kaupunki'] ?? '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '', 'lisatiedot' => '']], + 'liittymat' => [['asennusosoite' => $lead['osoite'] ?? '', 'postinumero' => '', 'kaupunki' => $lead['kaupunki'] ?? '', 'liittymanopeus' => '', 'hinta' => 0, 'sopimuskausi' => '', 'alkupvm' => '', 'vlan' => '', 'laite' => '', 'portti' => '', 'ip' => '']], 'luotu' => date('Y-m-d H:i:s'), ]; dbSaveCustomer($companyId, $customer); diff --git a/db.php b/db.php index cd7bfd5..acb01d5 100644 --- a/db.php +++ b/db.php @@ -409,6 +409,10 @@ function initDatabase(): void { "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", + "ALTER TABLE customer_connections ADD COLUMN vlan VARCHAR(20) DEFAULT '' AFTER lisatiedot", + "ALTER TABLE customer_connections ADD COLUMN laite VARCHAR(100) DEFAULT '' AFTER vlan", + "ALTER TABLE customer_connections ADD COLUMN portti VARCHAR(100) DEFAULT '' AFTER laite", + "ALTER TABLE customer_connections ADD COLUMN ip VARCHAR(100) DEFAULT '' AFTER portti", ]; foreach ($alters as $sql) { try { $db->query($sql); } catch (\Throwable $e) { /* sarake on jo olemassa / jo ajettu */ } @@ -703,7 +707,10 @@ function dbLoadCustomers(string $companyId): array { 'hinta' => (float)($conn['hinta'] ?? 0), 'sopimuskausi' => $conn['sopimuskausi'] ?? '', 'alkupvm' => $conn['alkupvm'] ?? '', - 'lisatiedot' => $conn['lisatiedot'] ?? '', + 'vlan' => $conn['vlan'] ?? '', + 'laite' => $conn['laite'] ?? '', + 'portti' => $conn['portti'] ?? '', + 'ip' => $conn['ip'] ?? '', ]; }, $conns); unset($c['company_id']); @@ -757,8 +764,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, lisatiedot) - VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + INSERT INTO customer_connections (customer_id, asennusosoite, postinumero, kaupunki, liittymanopeus, hinta, sopimuskausi, alkupvm, vlan, laite, portti, ip) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ", [ $customer['id'], $l['asennusosoite'] ?? '', @@ -768,7 +775,10 @@ function dbSaveCustomer(string $companyId, array $customer): void { $l['hinta'] ?? 0, $l['sopimuskausi'] ?? '', $l['alkupvm'] ?? '', - $l['lisatiedot'] ?? '', + $l['vlan'] ?? '', + $l['laite'] ?? '', + $l['portti'] ?? '', + $l['ip'] ?? '', ]); } } diff --git a/script.js b/script.js index 55de48d..8d350e1 100644 --- a/script.js +++ b/script.js @@ -307,7 +307,11 @@ function renderTable() { (l.asennusosoite || '').toLowerCase().includes(query) || (l.postinumero || '').toLowerCase().includes(query) || (l.kaupunki || '').toLowerCase().includes(query) || - (l.liittymanopeus || '').toLowerCase().includes(query) + (l.liittymanopeus || '').toLowerCase().includes(query) || + (l.vlan || '').toLowerCase().includes(query) || + (l.laite || '').toLowerCase().includes(query) || + (l.portti || '').toLowerCase().includes(query) || + (l.ip || '').toLowerCase().includes(query) ); return c.yritys.toLowerCase().includes(query) || (c.yhteyshenkilö || '').toLowerCase().includes(query) || inL; @@ -484,8 +488,11 @@ function showDetail(id) {
Hinta / kk
${formatPrice(l.hinta)}
Sopimuskausi
${l.sopimuskausi ? l.sopimuskausi + ' kk' : '-'}
Alkaen
${detailVal(l.alkupvm)}
+
VLAN
${detailVal(l.vlan)}
+
Laite
${detailVal(l.laite)}
+
Portti
${detailVal(l.portti)}
+
IP
${detailVal(l.ip)}
- ${l.lisatiedot ? `
Lisätiedot
${esc(l.lisatiedot)}
` : ''} `; }).join(''); const totalH = liittymat.reduce((s, l) => s + (parseFloat(l.hinta) || 0), 0); @@ -600,7 +607,10 @@ function createLiittymaRow(data = {}, index = 0) {
-
+
+
+
+
`; div.querySelector('.btn-remove-row').addEventListener('click', () => { div.remove(); renumberLiittymaRows(); }); return div; @@ -622,7 +632,10 @@ 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, + vlan: row.querySelector('.l-vlan').value, + laite: row.querySelector('.l-laite').value, + portti: row.querySelector('.l-portti').value, + ip: row.querySelector('.l-ip').value, })); }