Server : LiteSpeed
System : Linux terra.hostitbro.com 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User : outerorb ( 1091)
PHP Version : 8.1.34
Disable Function : mail
Directory :  /home2/outerorb/emp.outerorbittech.in/admin/

📁 Create New:
⬆️ Upload File:
Current Dir [ Writable ] Root [ Writable ]


OR Upload from URL:
URL: Save as:

📄 File: report-export.php

Path: /home2/outerorb/emp.outerorbittech.in/admin/report-export.php

Size: 3.81 KB

Permissions: 0666

<?php
/**
 * Report Export Handler
 * Handles PDF, Excel, and CSV exports for reports
 */

require_once '../config/config.php';
require_once '../includes/helpers.php';

session_start();

// Verify admin access
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
    http_response_code(403);
    exit('Unauthorized');
}

// Get export parameters
$export_type = $_GET['type'] ?? 'csv'; // pdf, excel, csv
$report_type = $_GET['report'] ?? null; // attendance, leave, payroll
$from_date = $_GET['from_date'] ?? null;
$to_date = $_GET['to_date'] ?? null;
$status = $_GET['status'] ?? null;

// Validate inputs
if (!in_array($export_type, ['pdf', 'excel', 'csv'])) {
    exit('Invalid export type');
}

if (!in_array($report_type, ['attendance', 'leave', 'payroll'])) {
    exit('Invalid report type');
}

// Log the export action
if (isset($_SESSION['user_id'])) {
    log_activity($_SESSION['user_id'], 'EXPORT_REPORT', $report_type, null, 
                "Exported as " . strtoupper($export_type));
}

// Get report data based on type
$data = [];
$columnMapping = [];
$filename = '';
$title = '';

switch ($report_type) {
    case 'attendance':
        $data = get_attendance_export_data($from_date, $to_date);
        $filename = 'Attendance_Report_' . date('Y-m-d_His');
        $title = 'Attendance Report';
        $columnMapping = [
            'employee_id' => 'Employee ID',
            'employee_name' => 'Employee Name',
            'department' => 'Department',
            'total_days' => 'Total Days',
            'present_days' => 'Present Days',
            'absent_days' => 'Absent Days',
            'attendance_percentage' => 'Attendance %',
        ];
        break;
        
    case 'leave':
        $data = get_leave_export_data($from_date, $to_date, $status);
        $filename = 'Leave_Report_' . date('Y-m-d_His');
        $title = 'Leave Report';
        $columnMapping = [
            'employee_id' => 'Employee ID',
            'employee_name' => 'Employee Name',
            'leave_type' => 'Leave Type',
            'from_date' => 'From Date',
            'to_date' => 'To Date',
            'days_requested' => 'Days',
            'reason' => 'Reason',
            'status' => 'Status',
        ];
        break;
        
    case 'payroll':
        $data = get_payroll_export_data($from_date, $to_date);
        $filename = 'Payroll_Report_' . date('Y-m-d_His');
        $title = 'Payroll Report';
        $columnMapping = [
            'employee_id' => 'Employee ID',
            'employee_name' => 'Employee Name',
            'department' => 'Department',
            'designation' => 'Designation',
            'gross_salary' => 'Gross Salary',
            'deductions' => 'Deductions',
            'net_salary' => 'Net Salary',
            'payment_status' => 'Status',
        ];
        break;
}

// No data found
if (empty($data)) {
    http_response_code(204);
    exit;
}

// Format data
$formattedData = format_export_data($data, $columnMapping);

// Get headers from first row
$headers = array_keys($formattedData[0]);
$dataRows = array_map(function($row) { return array_values($row); }, $formattedData);

// Export based on type
switch ($export_type) {
    case 'excel':
        export_to_excel($dataRows, $filename, $headers);
        break;
        
    case 'csv':
        export_to_csv($dataRows, $filename, $headers);
        break;
        
    case 'pdf':
        $filters = [];
        if ($from_date) $filters['From Date'] = $from_date;
        if ($to_date) $filters['To Date'] = $to_date;
        if ($status) $filters['Status'] = $status;
        
        $htmlContent = generate_report_html($report_type, $formattedData, $filters);
        export_to_pdf($htmlContent, $filename, $title);
        break;
}

← Back to Directory Edit File 🔒 Chmod

WP File Manager