Initial commit
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
header('Content-Type: application/json');
|
||||
require_once 'config.php';
|
||||
|
||||
// Get current user to restrict access (optional for MVP)
|
||||
$user = getCurrentUser();
|
||||
|
||||
try {
|
||||
$db = getDB();
|
||||
|
||||
// Get total households
|
||||
$householdTotal = $db->query('SELECT COUNT(*) as count FROM households')->fetch(PDO::FETCH_ASSOC)['count'];
|
||||
|
||||
// Get households by verification status
|
||||
$statusBreakdown = $db->query('
|
||||
SELECT verification_status, COUNT(*) as count
|
||||
FROM households
|
||||
GROUP BY verification_status
|
||||
')->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$statusMap = [];
|
||||
foreach ($statusBreakdown as $row) {
|
||||
$statusMap[$row['verification_status']] = $row['count'];
|
||||
}
|
||||
|
||||
// Get average SKR (poverty score)
|
||||
$skrAvg = $db->query('
|
||||
SELECT
|
||||
AVG(skr) as avg_skr,
|
||||
COUNT(*) as scored_count
|
||||
FROM household_scores
|
||||
')->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
// Get households assisted
|
||||
$assistedCount = $db->query('
|
||||
SELECT COUNT(DISTINCT household_id) as count
|
||||
FROM assistance_distributions
|
||||
WHERE delivery_status = \'delivered\'
|
||||
')->fetch(PDO::FETCH_ASSOC)['count'];
|
||||
|
||||
// Get priority level breakdown
|
||||
$priorityBreakdown = $db->query('
|
||||
SELECT priority_level, COUNT(*) as count
|
||||
FROM household_scores
|
||||
GROUP BY priority_level
|
||||
')->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$priorityMap = [];
|
||||
foreach ($priorityBreakdown as $row) {
|
||||
$priorityMap[$row['priority_level']] = $row['count'];
|
||||
}
|
||||
|
||||
// Get assistance type breakdown
|
||||
$assistanceTypes = $db->query('
|
||||
SELECT
|
||||
assistance_type,
|
||||
COUNT(*) as count,
|
||||
SUM(assistance_value) as total_value
|
||||
FROM assistance_distributions
|
||||
GROUP BY assistance_type
|
||||
')->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$response = [
|
||||
'success' => true,
|
||||
'summary' => [
|
||||
'total_households' => $householdTotal,
|
||||
'avg_poverty_score' => round($skrAvg['avg_skr'] ?? 0, 2),
|
||||
'households_scored' => $skrAvg['scored_count'] ?? 0,
|
||||
'households_assisted' => $assistedCount,
|
||||
'percentage_assisted' => $householdTotal > 0 ? round(($assistedCount / $householdTotal) * 100, 1) : 0
|
||||
],
|
||||
'status_breakdown' => $statusMap,
|
||||
'priority_breakdown' => $priorityMap,
|
||||
'assistance_by_type' => $assistanceTypes
|
||||
];
|
||||
|
||||
http_response_code(200);
|
||||
die(json_encode($response));
|
||||
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
die(json_encode(['error' => 'Database error: ' . $e->getMessage()]));
|
||||
}
|
||||
Reference in New Issue
Block a user