-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathset_siet.php
More file actions
executable file
·46 lines (44 loc) · 2.04 KB
/
Copy pathset_siet.php
File metadata and controls
executable file
·46 lines (44 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
/**
* Nastavi pole "Siet / Typ (obec)" zakaznikom (bez vplyvu na program/rychlost/MikroTik).
*
* docker exec -it mt-ispadmin php /var/www/html/set_siet.php "Bošany" # vsetkym
* docker exec -it mt-ispadmin php /var/www/html/set_siet.php "Bošany" --router="Bošany" # len danemu routeru
*/
require_once __DIR__ . '/lib/db.php';
$val = $argv[1] ?? '';
if ($val === '') { fwrite(STDERR, "Pouzitie: php set_siet.php \"Nazov siete\" [--router=...] [--from=...]\n"); exit(1); }
$routerName = null;
$fromVal = null;
foreach ($argv as $a) {
if (preg_match('/^--router=(.*)$/', $a, $m)) $routerName = trim($m[1], "\"'");
if (preg_match('/^--from=(.*)$/', $a, $m)) $fromVal = trim($m[1], "\"'");
}
$pdo = db();
$sql = 'UPDATE customers SET siet = ? WHERE deleted_at IS NULL';
$params = [$val];
if ($fromVal !== null) {
$sql .= ' AND siet = ?';
$params[] = $fromVal;
}
if ($routerName !== null) {
// najprv presna zhoda, inak ciastocna (LIKE) - aby stacila aj cast nazvu routera
$rids = [];
$st = $pdo->prepare('SELECT id, name FROM routers WHERE name = ?');
$st->execute([$routerName]);
foreach ($st as $r) $rids[$r['id']] = $r['name'];
if (!$rids) {
$st = $pdo->prepare('SELECT id, name FROM routers WHERE name LIKE ?');
$st->execute(['%' . $routerName . '%']);
foreach ($st as $r) $rids[$r['id']] = $r['name'];
}
if (!$rids) { fwrite(STDERR, "Žiadny router podľa '$routerName'. Dostupné: " . implode(', ', array_column($pdo->query('SELECT name FROM routers')->fetchAll(), 'name')) . "\n"); exit(1); }
echo "Routery: " . implode(', ', $rids) . "\n";
$in = implode(',', array_fill(0, count($rids), '?'));
$sql .= ' AND router_id IN (' . $in . ')';
$params = array_merge($params, array_keys($rids));
}
$st = $pdo->prepare($sql);
$st->execute($params);
echo "Nastavené Sieť = '$val'" . ($routerName !== null ? " pre vybraný router" : " (všetci)") . " — " . $st->rowCount() . " zákazníkov.\n";
echo "Programy ani rýchlosti sa nezmenili, MikroTik sa nedotklo.\n";