कुल कैंप
₹
कुल राशि
पूर्ण कैंप
लंबित कैंप
कैंप संपादित करें
कैंप विवरण
₹
prepare("INSERT INTO camps (program, name, father_name, address, class, amount, payment_method, place, email, payment_id, payment_proof, status, camp_id, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())"); $stmt->execute([$program, $name, $father_name, $address, $class, $amount, $payment_method, $place, $email, $payment_id, $payment_proof, $status, $camp_id]); $message = 'कैंप रिकॉर्ड सफलतापूर्वक जोड़ा गया!'; $action = 'list'; } catch (Exception $e) { $error = 'कैंप जोड़ने में त्रुटि: ' . $e->getMessage(); } break; case 'update': if (!isAdmin()) { $error = 'आपको इस कार्य की अनुमति नहीं है।'; break; } try { $camp_id = intval($_POST['id']); $program = sanitizeInput($_POST['program']); $name = sanitizeInput($_POST['name']); $father_name = sanitizeInput($_POST['father_name']); $address = sanitizeInput($_POST['address']); $class = sanitizeInput($_POST['class']); $amount = floatval($_POST['amount']); $payment_method = sanitizeInput($_POST['payment_method']); $place = sanitizeInput($_POST['place']); $email = !empty($_POST['email']) ? sanitizeInput($_POST['email']) : null; $payment_id = !empty($_POST['payment_id']) ? sanitizeInput($_POST['payment_id']) : null; $status = sanitizeInput($_POST['status']); // Validate required fields if (empty($program) || empty($name) || empty($father_name) || empty($address) || empty($class) || empty($place) || empty($payment_method) || empty($status)) { throw new Exception('सभी आवश्यक फील्ड भरें।'); } // Get current data $stmt = $db->prepare("SELECT payment_proof FROM camps WHERE id = ?"); $stmt->execute([$camp_id]); $current_data = $stmt->fetch(PDO::FETCH_ASSOC); if (!$current_data) { throw new Exception('कैंप रिकॉर्ड नहीं मिला।'); } $payment_proof = $current_data['payment_proof']; // Handle payment proof upload if (!empty($_FILES['payment_proof']['name']) && $_FILES['payment_proof']['error'] === UPLOAD_ERR_OK) { $uploadResult = uploadFile($_FILES['payment_proof'], 'img/payments'); if ($uploadResult['success']) { // Delete old payment proof if (!empty($payment_proof) && file_exists('../img/payments/' . $payment_proof)) { unlink('../img/payments/' . $payment_proof); } $payment_proof = $uploadResult['filename']; } else { throw new Exception('भुगतान प्रमाण अपलोड में त्रुटि: ' . $uploadResult['error']); } } $stmt = $db->prepare("UPDATE camps SET program = ?, name = ?, father_name = ?, address = ?, class = ?, amount = ?, payment_method = ?, place = ?, email = ?, payment_id = ?, payment_proof = ?, status = ? WHERE id = ?"); $stmt->execute([$program, $name, $father_name, $address, $class, $amount, $payment_method, $place, $email, $payment_id, $payment_proof, $status, $camp_id]); $message = 'कैंप रिकॉर्ड सफलतापूर्वक अपडेट किया गया!'; header("Location: " . SITE_URL . "/admin/manage_camps.php"); exit; } catch (Exception $e) { $error = 'कैंप अपडेट करने में त्रुटि: ' . $e->getMessage(); } break; case 'update_status': if (!isAdmin()) { $error = 'आपको इस कार्य की अनुमति नहीं है।'; break; } try { $camp_id = intval($_POST['id']); $status = sanitizeInput($_POST['status']); $stmt = $db->prepare("UPDATE camps SET status = ? WHERE id = ?"); $stmt->execute([$status, $camp_id]); $message = 'कैंप की स्थिति अपडेट की गई!'; } catch (Exception $e) { $error = 'स्थिति अपडेट करने में त्रुटि: ' . $e->getMessage(); } break; case 'delete': if (!isAdmin()) { $error = 'आपको इस कार्य की अनुमति नहीं है।'; break; } try { $delete_id = intval($_POST['id']); // Get payment proof before deleting $stmt = $db->prepare("SELECT payment_proof FROM camps WHERE id = ?"); $stmt->execute([$delete_id]); $camp = $stmt->fetch(PDO::FETCH_ASSOC); // Delete camp $stmt = $db->prepare("DELETE FROM camps WHERE id = ?"); $stmt->execute([$delete_id]); // Delete payment proof if exists if (!empty($camp['payment_proof']) && file_exists('../img/payments/' . $camp['payment_proof'])) { unlink('../img/payments/' . $camp['payment_proof']); } $message = 'कैंप रिकॉर्ड सफलतापूर्वक हटाया गया!'; } catch (Exception $e) { $error = 'हटाने में त्रुटि: ' . $e->getMessage(); } break; } } } // Get camp data for editing/viewing $camp_data = null; if (($action === 'edit' || $action === 'view') && $id > 0) { if ($action === 'edit' && !isAdmin()) { $error = 'आपको इस कार्य की अनुमति नहीं है।'; $action = 'list'; } else { $sql = "SELECT * FROM camps WHERE id = ?"; $stmt = $db->prepare($sql); $stmt->execute([$id]); $camp_data = $stmt->fetch(PDO::FETCH_ASSOC); if (!$camp_data) { $error = 'कैंप रिकॉर्ड नहीं मिला!'; $action = 'list'; } } } // Get camps list $camps_list = []; $filter_status = $_GET['status'] ?? ''; if ($action === 'list') { $sql = "SELECT * FROM camps"; $params = []; if (!empty($filter_status)) { $sql .= " WHERE status = ?"; $params[] = $filter_status; } $sql .= " ORDER BY created_at DESC"; $stmt = $db->prepare($sql); $stmt->execute($params); $camps_list = $stmt->fetchAll(PDO::FETCH_ASSOC); } // Get statistics $stats = []; try { $sql = "SELECT COUNT(*) as total_camps, COALESCE(SUM(amount), 0) as total_amount, COUNT(CASE WHEN status = 'completed' THEN 1 END) as completed_camps, COALESCE(SUM(CASE WHEN status = 'completed' THEN amount ELSE 0 END), 0) as completed_amount, COUNT(CASE WHEN status = 'pending' THEN 1 END) as pending_camps FROM camps"; $stmt = $db->prepare($sql); $stmt->execute(); $stats = $stmt->fetch(PDO::FETCH_ASSOC); } catch (Exception $e) { $stats = ['total_camps' => 0, 'total_amount' => 0, 'completed_camps' => 0, 'completed_amount' => 0, 'pending_camps' => 0]; } // Handle receipt generation if ($action === 'receipt' && $id > 0) { $sql = "SELECT * FROM camps WHERE id = ?"; $stmt = $db->prepare($sql); $stmt->execute([$id]); $receipt_data = $stmt->fetch(PDO::FETCH_ASSOC); if ($receipt_data) { $options = [ 'type' => 'camp', 'auto_print' => false, 'show_buttons' => true, 'download' => isset($_GET['download']) ]; $receipt_html = generateUniversalReceipt($receipt_data, $options); echo $receipt_html; exit; } else { $error = 'रसीद जनरेट करने में त्रुटि: रिकॉर्ड नहीं मिला!'; $action = 'list'; } } include 'includes/header.php'; ?>
कुल कैंप
कुल राशि
पूर्ण कैंप
लंबित कैंप
₹