0) { $stmt = $pdo->prepare("UPDATE customers SET name=?, inn=?, kpp=?, legal_address=?, contact_person=?, contact_phone=?, contact_email=?, status=?, notes=? WHERE id=?"); $stmt->execute([$name, $inn, $kpp, $address, $contact, $cphone, $cemail, $status, $notes, $id]); $message = 'Клиент обновлён.'; } else { $stmt = $pdo->prepare("INSERT INTO customers (name, inn, kpp, legal_address, contact_person, contact_phone, contact_email, status, notes, created_by) VALUES (?,?,?,?,?,?,?,?,?,?)"); $stmt->execute([$name, $inn, $kpp, $address, $contact, $cphone, $cemail, $status, $notes, $session['user_id']]); $message = 'Клиент создан.'; } auth_log($session['user_id'], $id > 0 ? 'customer_update' : 'customer_create', "Name: $name"); } catch (\PDOException $e) { $message = 'Ошибка: ' . $e->getMessage(); } } } if (isset($_GET['delete']) && auth_has_role('owner')) { $id = (int)$_GET['delete']; if (auth_csrf_verify($_GET['csrf'] ?? '')) { $pdo->prepare("DELETE FROM customers WHERE id=?")->execute([$id]); $message = 'Клиент удалён.'; auth_log($session['user_id'], 'customer_delete', "ID: $id"); } } $editCust = null; if (isset($_GET['edit'])) { $stmt = $pdo->prepare("SELECT * FROM customers WHERE id=?"); $stmt->execute([(int)$_GET['edit']]); $editCust = $stmt->fetch(); } $search = trim($_GET['search'] ?? ''); if ($search !== '') { $stmt = $pdo->prepare(" SELECT c.*, (SELECT COUNT(*) FROM objects WHERE customer_id=c.id) as objects_count, (SELECT COUNT(*) FROM sla_contracts WHERE customer_id=c.id AND status='active') as active_contracts FROM customers c WHERE c.name LIKE ? OR c.inn LIKE ? OR c.contact_person LIKE ? ORDER BY c.name "); $stmt->execute(["%$search%", "%$search%", "%$search%"]); } else { $stmt = $pdo->query(" SELECT c.*, (SELECT COUNT(*) FROM objects WHERE customer_id=c.id) as objects_count, (SELECT COUNT(*) FROM sla_contracts WHERE customer_id=c.id AND status='active') as active_contracts FROM customers c ORDER BY c.name "); } $customers = $stmt->fetchAll(); $csrf = auth_csrf_token(); require __DIR__ . '/../../inc/header.php'; ?>
| Название | ИНН | Контакт | Статус | Объекты | Активные SLA | Действия |
|---|---|---|---|---|---|---|
| Нет клиентов | ||||||
| = htmlspecialchars($c['name']) ?> | = $c['inn'] ?: '—' ?> | = htmlspecialchars($c['contact_person'] ?: '—') ?> | = $c['status'] ?> | = (int)$c['objects_count'] ?> | = (int)$c['active_contracts'] ?> | ✏️ 🏢 📋 🗑️ |