prepare("INSERT INTO customers (phone, name_en, name_ar, email, address_en, address_ar) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$phone, $name_en, $name_ar, $email, $address_en, $address_ar]); header('Location: customers.php?success=customer_added'); exit; } } elseif ($action === 'edit_customer') { $id = $_POST['id']; $phone = $_POST['phone'] ?? ''; $name_en = $_POST['name_en'] ?? ''; $name_ar = $_POST['name_ar'] ?? ''; $email = $_POST['email'] ?? ''; $address_en = $_POST['address_en'] ?? ''; $address_ar = $_POST['address_ar'] ?? ''; $stmt = db()->prepare("UPDATE customers SET phone = ?, name_en = ?, name_ar = ?, email = ?, address_en = ?, address_ar = ? WHERE id = ?"); $stmt->execute([$phone, $name_en, $name_ar, $email, $address_en, $address_ar, $id]); header('Location: customers.php?success=customer_updated'); exit; } elseif ($action === 'delete_customer') { $id = $_POST['id']; $stmt = db()->prepare("SELECT COUNT(*) FROM orders WHERE customer_id = ?"); $stmt->execute([$id]); if ($stmt->fetchColumn() > 0) { header('Location: customers.php?error=customer_has_orders'); exit; } $stmt = db()->prepare("DELETE FROM customers WHERE id = ?"); $stmt->execute([$id]); header('Location: customers.php?success=customer_deleted'); exit; } elseif ($action === 'adjust_points') { $id = $_POST['id']; $points = (float)$_POST['points']; $type = $_POST['type']; // 'add' or 'subtract' $desc = $_POST['description'] ?? 'Manual adjustment'; $pdo = db(); $pdo->beginTransaction(); try { $val = ($type === 'add') ? $points : -$points; $pdo->prepare("UPDATE customers SET loyalty_points = loyalty_points + ? WHERE id = ?")->execute([$val, $id]); $pdo->prepare("INSERT INTO loyalty_transactions (customer_id, points, type, description) VALUES (?, ?, 'adjusted', ?)") ->execute([$id, $val, $desc]); $pdo->commit(); header('Location: customers.php?success=points_adjusted'); exit; } catch (Exception $e) { $pdo->rollBack(); header('Location: customers.php?error=' . urlencode($e->getMessage())); exit; } } } $title = 'customers'; require_once __DIR__ . '/includes/header.php'; $search = $_GET['search'] ?? ''; $sql = "SELECT * FROM customers WHERE 1=1"; $params = []; if ($search) { $sql .= " AND (name_en LIKE ? OR name_ar LIKE ? OR phone LIKE ?)"; $params[] = "%$search%"; $params[] = "%$search%"; $params[] = "%$search%"; } $sql .= " ORDER BY created_at DESC"; $stmt = db()->prepare($sql); $stmt->execute($params); $customers = $stmt->fetchAll(); ?>
#