Sindbad~EG File Manager

Current Path : /home/copmadinaarea/thecopmadinaarea.org/reports/dashboard/
Upload File :
Current File : /home/copmadinaarea/thecopmadinaarea.org/reports/dashboard/demography-entry.php

<?php
session_start();
require_once __DIR__ . '/../config/database.php';
require_once __DIR__ . '/../includes/functions.php';

if (!isset($_SESSION['user_id'])) {
    header('Location: ../login.php');
    exit();
}

// Check permission for data entry
if (!checkPermission('dataentry')) {
    header('Location: ' . $_SESSION['user_level'] . '.php?error=access_denied');
    exit();
}

$page_title = 'Demography 1 - Data Entry';
$page_description = 'Enter demographic data for assemblies';

$success_message = '';
$error_message = '';
// Get accessible areas, districts, and assemblies based on user level
$areas = getAccessibleAreas($_SESSION['user_level'], $_SESSION['area_id']);
$districts = [];
$assemblies = [];

// Handle form submissions for all three data types
if ($_POST) {
    $area_id = (int)$_POST['area_id'];
    $district_id = (int)$_POST['district_id'];
    $assembly_id = (int)$_POST['assembly_id'];
    
    // Validate location selection
    if (!$area_id || !$district_id || !$assembly_id) {
        $error_message = 'Please select Area, District, and Assembly.';
    } else {
        
        // Handle Membership data submission
        if (isset($_POST['submit_demography'])) {
            $children_male = (int)$_POST['children_male'];
            $children_female = (int)$_POST['children_female'];
            $teens_male = (int)$_POST['teens_male'];
            $teens_female = (int)$_POST['teens_female'];
            $young_adults_male = (int)$_POST['young_adults_male'];
            $young_adults_female = (int)$_POST['young_adults_female'];
            $other_adults_male = (int)$_POST['other_adults_male'];
            $other_adults_female = (int)$_POST['other_adults_female'];
            
            try {
            // Check if entry already exists for this assembly
            $check_query = "SELECT id FROM demography_data WHERE assembly_id = :assembly_id";
            $check_stmt = $db->prepare($check_query);
            $check_stmt->bindParam(':assembly_id', $assembly_id);
            $check_stmt->execute();
            
            if ($check_stmt->rowCount() > 0) {
                $error_message = 'Demography data already exists for this assembly. Please use the Data Edit page to update.';
            } else {
                // Insert new demography data
                $insert_query = "INSERT INTO demography_data (
                    area_id, district_id, assembly_id, 
                    children_male, children_female,
                    teens_male, teens_female,
                    young_adults_male, young_adults_female,
                    other_adults_male, other_adults_female,
                    created_by
                ) VALUES (
                    :area_id, :district_id, :assembly_id,
                    :children_male, :children_female,
                    :teens_male, :teens_female,
                    :young_adults_male, :young_adults_female,
                    :other_adults_male, :other_adults_female,
                    :created_by
                )";
                
                $insert_stmt = $db->prepare($insert_query);
                $insert_stmt->bindParam(':area_id', $area_id);
                $insert_stmt->bindParam(':district_id', $district_id);
                $insert_stmt->bindParam(':assembly_id', $assembly_id);
                $insert_stmt->bindParam(':children_male', $children_male);
                $insert_stmt->bindParam(':children_female', $children_female);
                $insert_stmt->bindParam(':teens_male', $teens_male);
                $insert_stmt->bindParam(':teens_female', $teens_female);
                $insert_stmt->bindParam(':young_adults_male', $young_adults_male);
                $insert_stmt->bindParam(':young_adults_female', $young_adults_female);
                $insert_stmt->bindParam(':other_adults_male', $other_adults_male);
                $insert_stmt->bindParam(':other_adults_female', $other_adults_female);
                $insert_stmt->bindParam(':created_by', $_SESSION['user_id']);
                
                if ($insert_stmt->execute()) {
                    $success_message = 'Demography data saved successfully!';
                    logAudit('CREATE', 'demography_data', $db->lastInsertId(), null, $_POST);
                    
                    // Create notification
                    createNotification($_SESSION['user_id'], 'Data Entry Complete', 'Demography data has been successfully entered.', 'success');
                } else {
                    $error_message = 'Error saving demography data. Please try again.';
                }
            }
        } catch (Exception $e) {
            $error_message = 'Database error: ' . $e->getMessage();
        }
        
        // Handle Souls data submission
        } elseif (isset($_POST['submit_souls'])) {
            try {
                // Check if entry already exists for this assembly
                $check_query = "SELECT id FROM souls_data WHERE assembly_id = :assembly_id";
                $check_stmt = $db->prepare($check_query);
                $check_stmt->bindParam(':assembly_id', $assembly_id);
                $check_stmt->execute();
                
                if ($check_stmt->rowCount() > 0) {
                    $error_message = 'Souls data already exists for this assembly. Please use the Data Edit page to update.';
                } else {
                    $insert_query = "INSERT INTO souls_data (area_id, district_id, assembly_id, outreach_program, adult_souls_won_cop, other_souls_won, gospel_sunday_morning, hum, mpwds, chaplaincy, chieftancy, som, digital_space, baptized_in_water, holy_spirit_baptism, old_members_now_baptized_holy_spirit, created_by) 
                                   VALUES (:area_id, :district_id, :assembly_id, :outreach_program, :adult_souls_won_cop, :other_souls_won, :gospel_sunday_morning, :hum, :mpwds, :chaplaincy, :chieftancy, :som, :digital_space, :baptized_in_water, :holy_spirit_baptism, :old_members_baptized, :created_by)";
                    
                    $insert_stmt = $db->prepare($insert_query);
                    $insert_stmt->bindValue(':area_id', $area_id);
                    $insert_stmt->bindValue(':district_id', $district_id);
                    $insert_stmt->bindValue(':assembly_id', $assembly_id);
                    $insert_stmt->bindValue(':outreach_program', (int)$_POST['outreach_program']);
                    $insert_stmt->bindValue(':adult_souls_won_cop', (int)$_POST['adult_souls_won_cop']);
                    $insert_stmt->bindValue(':other_souls_won', (int)$_POST['other_souls_won']);
                    $insert_stmt->bindValue(':gospel_sunday_morning', (int)$_POST['gospel_sunday_morning']);
                    $insert_stmt->bindValue(':hum', (int)$_POST['hum']);
                    $insert_stmt->bindValue(':mpwds', (int)$_POST['mpwds']);
                    $insert_stmt->bindValue(':chaplaincy', (int)$_POST['chaplaincy']);
                    $insert_stmt->bindValue(':chieftancy', (int)$_POST['chieftancy']);
                    $insert_stmt->bindValue(':som', (int)$_POST['som']);
                    $insert_stmt->bindValue(':digital_space', (int)$_POST['digital_space']);
                    $insert_stmt->bindValue(':baptized_in_water', (int)$_POST['baptized_in_water']);
                    $insert_stmt->bindValue(':holy_spirit_baptism', (int)$_POST['holy_spirit_baptism']);
                    $insert_stmt->bindValue(':old_members_baptized', (int)$_POST['old_members_baptized']);
                    $insert_stmt->bindValue(':created_by', $_SESSION['user_id']);
                    
                    if ($insert_stmt->execute()) {
                        $success_message = 'Souls data saved successfully!';
                        logAudit('CREATE', 'souls_data', $db->lastInsertId(), null, $_POST);
                        createNotification($_SESSION['user_id'], 'Data Entry Complete', 'Souls data has been successfully entered.', 'success');
                    } else {
                        $error_message = 'Error saving souls data. Please try again.';
                    }
                }
            } catch (Exception $e) {
                $error_message = 'Database error: ' . $e->getMessage();
            }
            
        // Handle Transfers data submission
        } elseif (isset($_POST['submit_transfers'])) {
            try {
                // Check if entry already exists for this assembly
                $check_query = "SELECT id FROM transfers_data WHERE assembly_id = :assembly_id";
                $check_stmt = $db->prepare($check_query);
                $check_stmt->bindParam(':assembly_id', $assembly_id);
                $check_stmt->execute();
                
                if ($check_stmt->rowCount() > 0) {
                    $error_message = 'Transfers data already exists for this assembly. Please use the Data Edit page to update.';
                } else {
                    $insert_query = "INSERT INTO transfers_data (area_id, district_id, assembly_id, transfers_in_13_19, transfers_in_20_35, transfers_in_above_35, transfers_out_13_19, transfers_out_20_35, transfers_out_above_35, created_by) 
                                   VALUES (:area_id, :district_id, :assembly_id, :transfers_in_13_19, :transfers_in_20_35, :transfers_in_above_35, :transfers_out_13_19, :transfers_out_20_35, :transfers_out_above_35, :created_by)";
                    
                    $insert_stmt = $db->prepare($insert_query);
                    $insert_stmt->bindValue(':area_id', $area_id);
                    $insert_stmt->bindValue(':district_id', $district_id);
                    $insert_stmt->bindValue(':assembly_id', $assembly_id);
                    $insert_stmt->bindValue(':transfers_in_13_19', (int)$_POST['transfers_in_13_19']);
                    $insert_stmt->bindValue(':transfers_in_20_35', (int)$_POST['transfers_in_20_35']);
                    $insert_stmt->bindValue(':transfers_in_above_35', (int)$_POST['transfers_in_above_35']);
                    $insert_stmt->bindValue(':transfers_out_13_19', (int)$_POST['transfers_out_13_19']);
                    $insert_stmt->bindValue(':transfers_out_20_35', (int)$_POST['transfers_out_20_35']);
                    $insert_stmt->bindValue(':transfers_out_above_35', (int)$_POST['transfers_out_above_35']);
                    $insert_stmt->bindValue(':created_by', $_SESSION['user_id']);
                    
                    if ($insert_stmt->execute()) {
                        $success_message = 'Transfers data saved successfully!';
                        logAudit('CREATE', 'transfers_data', $db->lastInsertId(), null, $_POST);
                        createNotification($_SESSION['user_id'], 'Data Entry Complete', 'Transfers data has been successfully entered.', 'success');
                    } else {
                        $error_message = 'Error saving transfers data. Please try again.';
                    }
                }
            } catch (Exception $e) {
                $error_message = 'Database error: ' . $e->getMessage();
            }
        }
    }
}

// Get districts for selected area (AJAX will handle this)
if (isset($_GET['get_districts']) && isset($_GET['area_id'])) {
    $area_id = (int)$_GET['area_id'];
    $districts = getAccessibleDistricts($_SESSION['user_level'], $area_id, $_SESSION['district_id']);
    header('Content-Type: application/json');
    echo json_encode($districts);
    exit();
}

// Get assemblies for selected district (AJAX will handle this)
if (isset($_GET['get_assemblies']) && isset($_GET['district_id'])) {
    $district_id = (int)$_GET['district_id'];
    $assemblies = getAccessibleAssemblies($_SESSION['user_level'], $_SESSION['area_id'], $district_id, $_SESSION['assembly_id']);
    header('Content-Type: application/json');
    echo json_encode($assemblies);
    exit();
}

include __DIR__ . '/../includes/header.php';
?>

<div class="bg-white rounded-lg shadow-sm border border-gray-200">
    <!-- Global Location Selection -->
    <div class="bg-gray-50 p-6 border-b border-gray-200">
        <h3 class="text-lg font-semibold text-gray-800 mb-4">Location Selection</h3>
        <p class="text-sm text-gray-600 mb-4">Select the location once - it will apply to all data categories below.</p>
        <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
            <div>
                <label for="global_area_id" class="block text-sm font-medium text-gray-700 mb-2">Area *</label>
                <select name="area_id" id="global_area_id" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    <option value="">Select Area</option>
                    <?php foreach ($areas as $area): ?>
                    <option value="<?php echo $area['id']; ?>"><?php echo htmlspecialchars($area['name']); ?></option>
                    <?php endforeach; ?>
                </select>
            </div>
            <div>
                <label for="global_district_id" class="block text-sm font-medium text-gray-700 mb-2">District *</label>
                <select name="district_id" id="global_district_id" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    <option value="">Select District</option>
                </select>
            </div>
            <div>
                <label for="global_assembly_id" class="block text-sm font-medium text-gray-700 mb-2">Assembly *</label>
                <select name="assembly_id" id="global_assembly_id" required class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    <option value="">Select Assembly</option>
                </select>
            </div>
        </div>
    </div>

    <!-- Tab Navigation -->
    <div class="border-b border-gray-200">
        <nav class="flex space-x-8 px-6" aria-label="Tabs">
            <button id="membershipTab" class="tab-button border-b-2 border-cop-blue py-4 px-1 text-sm font-medium text-cop-blue" onclick="showTab('membership')">
                Membership
            </button>
            <button id="soulsTab" class="tab-button border-b-2 border-transparent py-4 px-1 text-sm font-medium text-gray-500 hover:text-gray-700 hover:border-gray-300" onclick="showTab('souls')">
                Souls
            </button>
            <button id="transfersTab" class="tab-button border-b-2 border-transparent py-4 px-1 text-sm font-medium text-gray-500 hover:text-gray-700 hover:border-gray-300" onclick="showTab('transfers')">
                Transfers
            </button>
        </nav>
    </div>

    <!-- Form Content -->
    <div class="p-6">
        <?php if ($success_message): ?>
        <div class="mb-6 bg-green-50 border border-green-200 text-green-700 px-4 py-3 rounded-lg">
            <div class="flex items-center">
                <i class="fas fa-check-circle mr-2"></i>
                <?php echo htmlspecialchars($success_message); ?>
            </div>
        </div>
        <?php endif; ?>

        <?php if ($error_message): ?>
        <div class="mb-6 bg-red-50 border border-red-200 text-red-700 px-4 py-3 rounded-lg">
            <div class="flex items-center">
                <i class="fas fa-exclamation-circle mr-2"></i>
                <?php echo htmlspecialchars($error_message); ?>
            </div>
        </div>
        <?php endif; ?>

        <!-- Membership Tab Content -->
        <div id="membershipContent" class="tab-content">
        <form method="POST" id="demographyForm" class="space-y-8">

            <!-- 1. Children's Membership -->
            <div class="bg-blue-50 p-6 rounded-lg">
                <h3 class="text-lg font-semibold text-gray-800 mb-4">1. CHILDREN'S MEMBERSHIP (below 13yrs)</h3>
                <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                    <div>
                        <label for="children_male" class="block text-sm font-medium text-gray-700 mb-2">Male</label>
                        <input type="number" name="children_male" id="children_male" min="0" value="0" 
                               class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    </div>
                    <div>
                        <label for="children_female" class="block text-sm font-medium text-gray-700 mb-2">Female</label>
                        <input type="number" name="children_female" id="children_female" min="0" value="0"
                               class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    </div>
                    <div>
                        <label class="block text-sm font-medium text-gray-700 mb-2">Total (1i)</label>
                        <input type="text" id="children_total" readonly 
                               class="w-full px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600">
                    </div>
                </div>
            </div>

            <!-- 2. Youth Membership -->
            <div class="bg-green-50 p-6 rounded-lg">
                <h3 class="text-lg font-semibold text-gray-800 mb-6">2. YOUTH MEMBERSHIP (13 to 35 years)</h3>
                
                <!-- 2.1 Teens -->
                <div class="mb-6">
                    <h4 class="text-md font-medium text-gray-700 mb-4">2.1 TEENS (13-19YRS)</h4>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                        <div>
                            <label for="teens_male" class="block text-sm font-medium text-gray-700 mb-2">Male</label>
                            <input type="number" name="teens_male" id="teens_male" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="teens_female" class="block text-sm font-medium text-gray-700 mb-2">Female</label>
                            <input type="number" name="teens_female" id="teens_female" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label class="block text-sm font-medium text-gray-700 mb-2">Total</label>
                            <input type="text" id="teens_total" readonly 
                                   class="w-full px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600">
                        </div>
                    </div>
                </div>

                <!-- 2.2 Young Adults -->
                <div class="mb-6">
                    <h4 class="text-md font-medium text-gray-700 mb-4">2.2 YOUNG ADULTS (20-35 YRS)</h4>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                        <div>
                            <label for="young_adults_male" class="block text-sm font-medium text-gray-700 mb-2">Male</label>
                            <input type="number" name="young_adults_male" id="young_adults_male" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="young_adults_female" class="block text-sm font-medium text-gray-700 mb-2">Female</label>
                            <input type="number" name="young_adults_female" id="young_adults_female" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label class="block text-sm font-medium text-gray-700 mb-2">Total</label>
                            <input type="text" id="young_adults_total" readonly 
                                   class="w-full px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600">
                        </div>
                    </div>
                </div>

                <!-- Youth Total -->
                <div class="bg-white p-4 rounded-lg border-2 border-green-300">
                    <div class="flex justify-between items-center">
                        <span class="font-semibold text-gray-800">Youth Total (a)</span>
                        <input type="text" id="youth_total" readonly 
                               class="px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600 font-semibold">
                    </div>
                </div>
            </div>

            <!-- 3. Other Adults -->
            <div class="bg-yellow-50 p-6 rounded-lg">
                <h3 class="text-lg font-semibold text-gray-800 mb-4">3. OTHER ADULTS (above 35 years)</h3>
                <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-6">
                    <div>
                        <label for="other_adults_male" class="block text-sm font-medium text-gray-700 mb-2">Male</label>
                        <input type="number" name="other_adults_male" id="other_adults_male" min="0" value="0"
                               class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    </div>
                    <div>
                        <label for="other_adults_female" class="block text-sm font-medium text-gray-700 mb-2">Female</label>
                        <input type="number" name="other_adults_female" id="other_adults_female" min="0" value="0"
                               class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                    </div>
                    <div>
                        <label class="block text-sm font-medium text-gray-700 mb-2">Total (b)</label>
                        <input type="text" id="other_adults_total" readonly 
                               class="w-full px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600">
                    </div>
                </div>
            </div>

            <!-- Summary Totals -->
            <div class="bg-gray-800 text-white p-6 rounded-lg">
                <h3 class="text-lg font-semibold mb-6">SUMMARY</h3>
                <div class="space-y-4">
                    <div class="flex justify-between items-center py-2 border-b border-gray-600">
                        <span class="font-medium">Total Adult Members (a)+(b)</span>
                        <input type="text" id="total_adult_members" readonly 
                               class="px-3 py-2 bg-gray-700 border border-gray-600 rounded-lg text-white font-semibold">
                    </div>
                    <div class="flex justify-between items-center py-2">
                        <span class="font-semibold text-lg">Overall Members (Adults & Children) (1i +(a+b))</span>
                        <input type="text" id="overall_members" readonly 
                               class="px-3 py-2 bg-gray-700 border border-gray-600 rounded-lg text-white font-bold text-lg">
                    </div>
                </div>
            </div>

            <!-- Submit Button -->
            <div class="flex justify-end space-x-4">
                <button type="button" onclick="resetForm()" 
                        class="px-6 py-3 bg-gray-500 text-white rounded-lg hover:bg-gray-600 transition duration-200">
                    <i class="fas fa-undo mr-2"></i>Reset
                </button>
                <button type="submit" name="submit_demography" 
                        class="px-6 py-3 bg-cop-blue text-white rounded-lg hover:bg-cop-dark-blue transition duration-200">
                    <i class="fas fa-save mr-2"></i>Save Demography Data
                </button>
            </div>
        </form>
        </div>

        <!-- Souls Tab Content -->
        <div id="soulsContent" class="tab-content hidden">
            <form method="POST" id="soulsForm" class="space-y-8">

                <!-- 1. Souls Won -->
                <div class="bg-blue-50 p-6 rounded-lg">
                    <h3 class="text-lg font-semibold text-gray-800 mb-4">1. SOULS WON</h3>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                        <div>
                            <label for="outreach_program" class="block text-sm font-medium text-gray-700 mb-2">OUT-REACH PROGRAM</label>
                            <input type="number" name="outreach_program" id="outreach_program" min="0" value="0" 
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="adult_souls_won_cop" class="block text-sm font-medium text-gray-700 mb-2">ADULT SOULS WON(COP)</label>
                            <input type="number" name="adult_souls_won_cop" id="adult_souls_won_cop" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="other_souls_won" class="block text-sm font-medium text-gray-700 mb-2">OTHER SOULS WON</label>
                            <input type="number" name="other_souls_won" id="other_souls_won" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                    </div>
                </div>

                <!-- 2. Souls Won Through -->
                <div class="bg-green-50 p-6 rounded-lg">
                    <h3 class="text-lg font-semibold text-gray-800 mb-4">2. SOULS WON THROUGH</h3>
                    <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
                        <div>
                            <label for="gospel_sunday_morning" class="block text-sm font-medium text-gray-700 mb-2">GOSPEL SUNDAY MORNING</label>
                            <input type="number" name="gospel_sunday_morning" id="gospel_sunday_morning" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="hum" class="block text-sm font-medium text-gray-700 mb-2">HUM</label>
                            <input type="number" name="hum" id="hum" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="mpwds" class="block text-sm font-medium text-gray-700 mb-2">MPWDs</label>
                            <input type="number" name="mpwds" id="mpwds" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="chaplaincy" class="block text-sm font-medium text-gray-700 mb-2">CHAPLAINCY</label>
                            <input type="number" name="chaplaincy" id="chaplaincy" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="chieftancy" class="block text-sm font-medium text-gray-700 mb-2">CHIEFTANCY</label>
                            <input type="number" name="chieftancy" id="chieftancy" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="som" class="block text-sm font-medium text-gray-700 mb-2">SOM</label>
                            <input type="number" name="som" id="som" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="digital_space" class="block text-sm font-medium text-gray-700 mb-2">DIGITAL SPACE</label>
                            <input type="number" name="digital_space" id="digital_space" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                    </div>
                </div>

                <!-- 3. Converts -->
                <div class="bg-yellow-50 p-6 rounded-lg">
                    <h3 class="text-lg font-semibold text-gray-800 mb-4">3. CONVERTS</h3>
                    <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
                        <div>
                            <label for="baptized_in_water" class="block text-sm font-medium text-gray-700 mb-2">BAPTIZED IN WATER</label>
                            <input type="number" name="baptized_in_water" id="baptized_in_water" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="holy_spirit_baptism" class="block text-sm font-medium text-gray-700 mb-2">HOLY SPIRIT BAPTISM</label>
                            <input type="number" name="holy_spirit_baptism" id="holy_spirit_baptism" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="old_members_baptized" class="block text-sm font-medium text-gray-700 mb-2">OLD MEMBERS NOW BAPTIZED IN HOLY SPIRIT</label>
                            <input type="number" name="old_members_baptized" id="old_members_baptized" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                    </div>
                </div>

                <!-- Submit Button -->
                <div class="flex justify-end space-x-4">
                    <button type="button" onclick="resetSoulsForm()" 
                            class="px-6 py-3 bg-gray-500 text-white rounded-lg hover:bg-gray-600 transition duration-200">
                        <i class="fas fa-undo mr-2"></i>Reset
                    </button>
                    <button type="submit" name="submit_souls" 
                            class="px-6 py-3 bg-cop-blue text-white rounded-lg hover:bg-cop-dark-blue transition duration-200">
                        <i class="fas fa-save mr-2"></i>Save Souls Data
                    </button>
                </div>
            </form>
        </div>

        <!-- Transfers Tab Content -->
        <div id="transfersContent" class="tab-content hidden">
            <form method="POST" id="transfersForm" class="space-y-8">

                <!-- 1. Transfers In -->
                <div class="bg-blue-50 p-6 rounded-lg">
                    <h3 class="text-lg font-semibold text-gray-800 mb-4">1. TRANSFERS IN</h3>
                    <div class="grid grid-cols-1 md:grid-cols-4 gap-6">
                        <div>
                            <label for="transfers_in_13_19" class="block text-sm font-medium text-gray-700 mb-2">13 - 19 YRS</label>
                            <input type="number" name="transfers_in_13_19" id="transfers_in_13_19" min="0" value="0" 
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="transfers_in_20_35" class="block text-sm font-medium text-gray-700 mb-2">20-35 YRS</label>
                            <input type="number" name="transfers_in_20_35" id="transfers_in_20_35" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="transfers_in_above_35" class="block text-sm font-medium text-gray-700 mb-2">ABOVE 35YRS</label>
                            <input type="number" name="transfers_in_above_35" id="transfers_in_above_35" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label class="block text-sm font-medium text-gray-700 mb-2">TOTAL</label>
                            <input type="text" id="transfers_in_total" readonly 
                                   class="w-full px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600">
                        </div>
                    </div>
                </div>

                <!-- 2. Transfers Out -->
                <div class="bg-red-50 p-6 rounded-lg">
                    <h3 class="text-lg font-semibold text-gray-800 mb-4">2. TRANSFERS OUT</h3>
                    <div class="grid grid-cols-1 md:grid-cols-4 gap-6">
                        <div>
                            <label for="transfers_out_13_19" class="block text-sm font-medium text-gray-700 mb-2">13 - 19 YRS</label>
                            <input type="number" name="transfers_out_13_19" id="transfers_out_13_19" min="0" value="0" 
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="transfers_out_20_35" class="block text-sm font-medium text-gray-700 mb-2">20-35 YRS</label>
                            <input type="number" name="transfers_out_20_35" id="transfers_out_20_35" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label for="transfers_out_above_35" class="block text-sm font-medium text-gray-700 mb-2">ABOVE 35YRS</label>
                            <input type="number" name="transfers_out_above_35" id="transfers_out_above_35" min="0" value="0"
                                   class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-cop-blue focus:border-transparent">
                        </div>
                        <div>
                            <label class="block text-sm font-medium text-gray-700 mb-2">TOTAL</label>
                            <input type="text" id="transfers_out_total" readonly 
                                   class="w-full px-3 py-2 bg-gray-100 border border-gray-300 rounded-lg text-gray-600">
                        </div>
                    </div>
                </div>

                <!-- Submit Button -->
                <div class="flex justify-end space-x-4">
                    <button type="button" onclick="resetTransfersForm()" 
                            class="px-6 py-3 bg-gray-500 text-white rounded-lg hover:bg-gray-600 transition duration-200">
                        <i class="fas fa-undo mr-2"></i>Reset
                    </button>
                    <button type="submit" name="submit_transfers" 
                            class="px-6 py-3 bg-cop-blue text-white rounded-lg hover:bg-cop-dark-blue transition duration-200">
                        <i class="fas fa-save mr-2"></i>Save Transfers Data
                    </button>
                </div>
            </form>
        </div>
    </div>
</div>

<script>
// Tab switching functionality
function showTab(tabName) {
    // Hide all tab contents
    document.querySelectorAll('.tab-content').forEach(content => {
        content.classList.add('hidden');
    });
    
    // Remove active class from all tab buttons
    document.querySelectorAll('.tab-button').forEach(button => {
        button.classList.remove('border-cop-blue', 'text-cop-blue');
        button.classList.add('border-transparent', 'text-gray-500');
    });
    
    // Show selected tab content
    document.getElementById(tabName + 'Content').classList.remove('hidden');
    
    // Add active class to selected tab button
    const activeButton = document.getElementById(tabName + 'Tab');
    activeButton.classList.remove('border-transparent', 'text-gray-500');
    activeButton.classList.add('border-cop-blue', 'text-cop-blue');
}

// Function to validate global location selection
function validateGlobalLocation() {
    const areaId = document.getElementById('global_area_id').value;
    const districtId = document.getElementById('global_district_id').value;
    const assemblyId = document.getElementById('global_assembly_id').value;
    
    if (!areaId || !districtId || !assemblyId) {
        alert('Please select Area, District, and Assembly before submitting any form.');
        return false;
    }
    return true;
}

// Function to add global location values to form before submission
function addGlobalLocationToForm(form) {
    const areaId = document.getElementById('global_area_id').value;
    const districtId = document.getElementById('global_district_id').value;
    const assemblyId = document.getElementById('global_assembly_id').value;
    
    // Remove existing hidden inputs if any
    const existingInputs = form.querySelectorAll('input[name="area_id"], input[name="district_id"], input[name="assembly_id"]');
    existingInputs.forEach(input => input.remove());
    
    // Add hidden inputs with global location values
    const areaInput = document.createElement('input');
    areaInput.type = 'hidden';
    areaInput.name = 'area_id';
    areaInput.value = areaId;
    form.appendChild(areaInput);
    
    const districtInput = document.createElement('input');
    districtInput.type = 'hidden';
    districtInput.name = 'district_id';
    districtInput.value = districtId;
    form.appendChild(districtInput);
    
    const assemblyInput = document.createElement('input');
    assemblyInput.type = 'hidden';
    assemblyInput.name = 'assembly_id';
    assemblyInput.value = assemblyId;
    form.appendChild(assemblyInput);
}

// Auto-calculation functions for Membership tab
function calculateTotals() {
    // Children totals
    const childrenMale = parseInt(document.getElementById('children_male').value) || 0;
    const childrenFemale = parseInt(document.getElementById('children_female').value) || 0;
    document.getElementById('children_total').value = childrenMale + childrenFemale;
    
    // Teens totals
    const teensMale = parseInt(document.getElementById('teens_male').value) || 0;
    const teensFemale = parseInt(document.getElementById('teens_female').value) || 0;
    const teensTotal = teensMale + teensFemale;
    document.getElementById('teens_total').value = teensTotal;
    
    // Young adults totals
    const youngAdultsMale = parseInt(document.getElementById('young_adults_male').value) || 0;
    const youngAdultsFemale = parseInt(document.getElementById('young_adults_female').value) || 0;
    const youngAdultsTotal = youngAdultsMale + youngAdultsFemale;
    document.getElementById('young_adults_total').value = youngAdultsTotal;
    
    // Youth total
    const youthTotal = teensTotal + youngAdultsTotal;
    document.getElementById('youth_total').value = youthTotal;
    
    // Other adults totals
    const otherAdultsMale = parseInt(document.getElementById('other_adults_male').value) || 0;
    const otherAdultsFemale = parseInt(document.getElementById('other_adults_female').value) || 0;
    const otherAdultsTotal = otherAdultsMale + otherAdultsFemale;
    document.getElementById('other_adults_total').value = otherAdultsTotal;
    
    // Total adult members
    const totalAdultMembers = youthTotal + otherAdultsTotal;
    document.getElementById('total_adult_members').value = totalAdultMembers;
    
    // Overall members
    const overallMembers = (childrenMale + childrenFemale) + totalAdultMembers;
    document.getElementById('overall_members').value = overallMembers;
}

// Add event listeners to all input fields
document.addEventListener('DOMContentLoaded', function() {
    // Membership tab calculations
    const membershipInputs = document.querySelectorAll('#membershipContent input[type="number"]');
    membershipInputs.forEach(input => {
        input.addEventListener('input', calculateTotals);
    });
    
    // Transfers tab calculations
    const transfersInputs = document.querySelectorAll('#transfersContent input[type="number"]');
    transfersInputs.forEach(input => {
        input.addEventListener('input', calculateTransfersTotals);
    });
    
    // Initial calculations
    calculateTotals();
    calculateTransfersTotals();
    
    // Add form submission handlers
    document.getElementById('demographyForm').addEventListener('submit', function(e) {
        if (!validateGlobalLocation()) {
            e.preventDefault();
            return false;
        }
        addGlobalLocationToForm(this);
    });
    
    document.getElementById('soulsForm').addEventListener('submit', function(e) {
        if (!validateGlobalLocation()) {
            e.preventDefault();
            return false;
        }
        addGlobalLocationToForm(this);
    });
    
    document.getElementById('transfersForm').addEventListener('submit', function(e) {
        if (!validateGlobalLocation()) {
            e.preventDefault();
            return false;
        }
        addGlobalLocationToForm(this);
    });
    
    // Global area change handler
    document.getElementById('global_area_id').addEventListener('change', function() {
        const areaId = this.value;
        const districtSelect = document.getElementById('global_district_id');
        const assemblySelect = document.getElementById('global_assembly_id');
        
        // Clear districts and assemblies
        districtSelect.innerHTML = '<option value="">Select District</option>';
        assemblySelect.innerHTML = '<option value="">Select Assembly</option>';
        
        if (areaId) {
            fetch(`?get_districts=1&area_id=${areaId}`)
                .then(response => response.json())
                .then(districts => {
                    districts.forEach(district => {
                        const option = document.createElement('option');
                        option.value = district.id;
                        option.textContent = district.name;
                        districtSelect.appendChild(option);
                    });
                });
        }
    });
    
    // Global district change handler
    document.getElementById('global_district_id').addEventListener('change', function() {
        const districtId = this.value;
        const assemblySelect = document.getElementById('global_assembly_id');
        
        // Clear assemblies
        assemblySelect.innerHTML = '<option value="">Select Assembly</option>';
        
        if (districtId) {
            fetch(`?get_assemblies=1&district_id=${districtId}`)
                .then(response => response.json())
                .then(assemblies => {
                    assemblies.forEach(assembly => {
                        const option = document.createElement('option');
                        option.value = assembly.id;
                        option.textContent = assembly.name;
                        assemblySelect.appendChild(option);
                    });
                });
        }
    });
});

// Auto-calculation functions for Transfers tab
function calculateTransfersTotals() {
    // Transfers In total
    const transfersIn13_19 = parseInt(document.getElementById('transfers_in_13_19').value) || 0;
    const transfersIn20_35 = parseInt(document.getElementById('transfers_in_20_35').value) || 0;
    const transfersInAbove35 = parseInt(document.getElementById('transfers_in_above_35').value) || 0;
    document.getElementById('transfers_in_total').value = transfersIn13_19 + transfersIn20_35 + transfersInAbove35;
    
    // Transfers Out total
    const transfersOut13_19 = parseInt(document.getElementById('transfers_out_13_19').value) || 0;
    const transfersOut20_35 = parseInt(document.getElementById('transfers_out_20_35').value) || 0;
    const transfersOutAbove35 = parseInt(document.getElementById('transfers_out_above_35').value) || 0;
    document.getElementById('transfers_out_total').value = transfersOut13_19 + transfersOut20_35 + transfersOutAbove35;
}

function resetForm() {
    if (confirm('Are you sure you want to reset all fields? This will clear all entered data.')) {
        document.getElementById('demographyForm').reset();
        calculateTotals();
    }
}

function resetSoulsForm() {
    if (confirm('Are you sure you want to reset all fields? This will clear all entered data.')) {
        document.getElementById('soulsForm').reset();
    }
}

function resetTransfersForm() {
    if (confirm('Are you sure you want to reset all fields? This will clear all entered data.')) {
        document.getElementById('transfersForm').reset();
        calculateTransfersTotals();
    }
}
</script>

<?php include __DIR__ . '/../includes/footer.php'; ?>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists