<?php
/**
 * 每月业绩客户构成统计分析
 */
require_once 'conn.php';
require_once 'statistics_utils.php';
require_once 'statistics_customers.php';
require_once 'statistics_sales.php';
// 检查登录状态
if (!isset($_SESSION['employee_id'])) {
    checkLogin();
}

function formatCurrency($value) {
    return '¥' . number_format($value ?? 0, 2);
}

function formatPercentage($value, $total) {
    if ($total == 0) return '0%';
    return round(($value / $total) * 100, 2) . '%';
}

// 获取当前登录用户信息
$current_employee_id = $_SESSION['employee_id'];
$current_permission_role = 0;

// 获取当前用户权限角色
$current_employee_id = intval($current_employee_id); // 确保是整数
$query = "SELECT em_permission_role_id FROM employee WHERE id = $current_employee_id";
$result = $conn->query($query);
if ($result && $row = $result->fetch_assoc()) {
    $current_permission_role = $row['em_permission_role_id'];
}

// 检查是否为导出请求
$is_export = isset($_GET['export']) && $_GET['export'] == 'excel';

// 如果是导出请求但当前用户不是管理员,则拒绝导出
if ($is_export && $current_permission_role != 1) {
    // 不允许导出,重定向回当前页面(不带export参数)
    $redirect_url = strtok($_SERVER['REQUEST_URI'], '?') . '?' . http_build_query(array_diff_key($_GET, ['export' => '', 'type' => '']));
    echo "<script>alert('只有管理员才有权限导出数据'); window.location.href='$redirect_url';</script>";
    exit;
}

// 获取日期范围参数
$date_params = getDateRangeParams();
$start_date = $date_params['start_date_sql'];
$end_date = $date_params['end_date_sql'];
$date_range = $date_params['date_range'];
$period = $date_params['period'];

// 如果不是导出操作,则包含页面头部
if (!$is_export) {
    include('statistics_header.php');
}

/**
 * 获取业务员业绩的客户构成
 */
function getCustomerCompositionStats($conn, $start_date, $end_date, $employee_filter = null) {
    global $current_permission_role;
    // 查询业务员的新客户业绩(客户编码以0开头的)
    $new_customer_sql = "SELECT 
                e.id AS employee_id,
                e.em_user AS employee_name,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            JOIN employee e ON c.cs_belong = e.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3
            AND c.cs_code LIKE '%.0%'";
    
    // 查询业务员的老客户业绩(客户编码以3开头且不包含斜杠的)
    $old_customer_sql = "SELECT 
                e.id AS employee_id,
                e.em_user AS employee_name,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            JOIN employee e ON c.cs_belong = e.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3
            AND c.cs_code LIKE '%.3%'
            AND c.cs_code NOT LIKE '%/%'";
    
    // 查询业务员的分配客户业绩(客户编码包含斜杠的)
    $assigned_customer_sql = "SELECT 
                e.id AS employee_id,
                e.em_user AS employee_name,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            JOIN employee e ON c.cs_belong = e.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3
            AND c.cs_code LIKE '%/%'";
    
    // 查询业务员的总业绩
    $total_sql = "SELECT 
                e.id AS employee_id,
                e.em_user AS employee_name,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            JOIN employee e ON c.cs_belong = e.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3";
    
    // 根据员工过滤条件添加WHERE子句
    if ($employee_filter !== null) {
        if (is_array($employee_filter)) {
            if (!empty($employee_filter)) {
                $employee_ids = implode(',', array_map('intval', $employee_filter));
                $new_customer_sql .= " AND c.cs_belong IN ($employee_ids)";
                $old_customer_sql .= " AND c.cs_belong IN ($employee_ids)";
                $assigned_customer_sql .= " AND c.cs_belong IN ($employee_ids)";
                $total_sql .= " AND c.cs_belong IN ($employee_ids)";
            }
        } else {
            $employee_id = intval($employee_filter);
            $new_customer_sql .= " AND c.cs_belong = $employee_id";
            $old_customer_sql .= " AND c.cs_belong = $employee_id";
            $assigned_customer_sql .= " AND c.cs_belong = $employee_id";
            $total_sql .= " AND c.cs_belong = $employee_id";
        }
    }
    
    $new_customer_sql .= " GROUP BY e.id ORDER BY total_amount DESC";
    $old_customer_sql .= " GROUP BY e.id ORDER BY total_amount DESC";
    $assigned_customer_sql .= " GROUP BY e.id ORDER BY total_amount DESC";
    $total_sql .= " GROUP BY e.id ORDER BY total_amount DESC";
    
    $new_result = $conn->query($new_customer_sql);
    $old_result = $conn->query($old_customer_sql);
    $assigned_result = $conn->query($assigned_customer_sql);
    $total_result = $conn->query($total_sql);
    
    $new_data = [];
    $old_data = [];
    $assigned_data = [];
    $total_data = [];
    
    if ($new_result) {
        while ($row = $new_result->fetch_assoc()) {
            $new_data[$row['employee_id']] = $row;
        }
    }
    
    if ($old_result) {
        while ($row = $old_result->fetch_assoc()) {
            $old_data[$row['employee_id']] = $row;
        }
    }
    
    if ($assigned_result) {
        while ($row = $assigned_result->fetch_assoc()) {
            $assigned_data[$row['employee_id']] = $row;
        }
    }
    
    if ($total_result) {
        while ($row = $total_result->fetch_assoc()) {
            $total_data[$row['employee_id']] = $row;
        }
    }
    
    // 合并数据
    $combined_data = [];
    
    foreach ($total_data as $employee_id => $total) {
        $combined_data[$employee_id] = [
            'employee_id' => $employee_id,
            'employee_name' => $total['employee_name'],
            'total_customer_count' => $total['customer_count'],
            'total_amount' => $total['total_amount'],
            'new_customer_count' => $new_data[$employee_id]['customer_count'] ?? 0,
            'new_customer_amount' => $new_data[$employee_id]['total_amount'] ?? 0,
            'old_customer_count' => $old_data[$employee_id]['customer_count'] ?? 0,
            'old_customer_amount' => $old_data[$employee_id]['total_amount'] ?? 0,
            'assigned_customer_count' => $assigned_data[$employee_id]['customer_count'] ?? 0,
            'assigned_customer_amount' => $assigned_data[$employee_id]['total_amount'] ?? 0
        ];
    }
    
    // 按总业绩降序排序
    usort($combined_data, function($a, $b) {
        return $b['total_amount'] - $a['total_amount'];
    });
    
    return $combined_data;
}

/**
 * 获取按月统计的客户构成业绩
 */
function getMonthlyCustomerComposition($conn, $start_date, $end_date, $employee_filter = null) {
    global $current_permission_role;
    // 查询每月新客户业绩(客户编码以0开头的)
    $new_customer_sql = "SELECT 
                DATE_FORMAT(o.order_date, '%Y-%m') AS month,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3
            AND c.cs_code LIKE '%.0%'";
    
    // 查询每月老客户业绩(客户编码以3开头且不包含斜杠的)
    $old_customer_sql = "SELECT 
                DATE_FORMAT(o.order_date, '%Y-%m') AS month,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3
            AND c.cs_code LIKE '%.3%'
            AND c.cs_code NOT LIKE '%/%'";
    
    // 查询每月分配客户业绩(客户编码包含斜杠的)
    $assigned_customer_sql = "SELECT 
                DATE_FORMAT(o.order_date, '%Y-%m') AS month,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3
            AND c.cs_code LIKE '%/%'";
    
    // 查询每月总业绩
    $total_sql = "SELECT 
                DATE_FORMAT(o.order_date, '%Y-%m') AS month,
                COUNT(DISTINCT c.id) AS customer_count,
                SUM(o.total_amount) AS total_amount
            FROM orders o
            JOIN customer c ON o.customer_id = c.id
            WHERE o.order_date BETWEEN '$start_date' AND '$end_date'
            AND c.cs_deal = 3";
    
    // 根据员工过滤条件添加WHERE子句
    if ($employee_filter !== null) {
        if (is_array($employee_filter)) {
            if (!empty($employee_filter)) {
                $employee_ids = implode(',', array_map('intval', $employee_filter));
                $new_customer_sql .= " AND c.cs_belong IN ($employee_ids)";
                $old_customer_sql .= " AND c.cs_belong IN ($employee_ids)";
                $assigned_customer_sql .= " AND c.cs_belong IN ($employee_ids)";
                $total_sql .= " AND c.cs_belong IN ($employee_ids)";
            }
        } else {
            $employee_id = intval($employee_filter);
            $new_customer_sql .= " AND c.cs_belong = $employee_id";
            $old_customer_sql .= " AND c.cs_belong = $employee_id";
            $assigned_customer_sql .= " AND c.cs_belong = $employee_id";
            $total_sql .= " AND c.cs_belong = $employee_id";
        }
    }
    
    $new_customer_sql .= " GROUP BY DATE_FORMAT(o.order_date, '%Y-%m') ORDER BY month";
    $old_customer_sql .= " GROUP BY DATE_FORMAT(o.order_date, '%Y-%m') ORDER BY month";
    $assigned_customer_sql .= " GROUP BY DATE_FORMAT(o.order_date, '%Y-%m') ORDER BY month";
    $total_sql .= " GROUP BY DATE_FORMAT(o.order_date, '%Y-%m') ORDER BY month";
    
    $new_result = $conn->query($new_customer_sql);
    $old_result = $conn->query($old_customer_sql);
    $assigned_result = $conn->query($assigned_customer_sql);
    $total_result = $conn->query($total_sql);
    
    $new_data = [];
    $old_data = [];
    $assigned_data = [];
    $total_data = [];
    
    if ($new_result) {
        while ($row = $new_result->fetch_assoc()) {
            $new_data[$row['month']] = $row;
        }
    }
    
    if ($old_result) {
        while ($row = $old_result->fetch_assoc()) {
            $old_data[$row['month']] = $row;
        }
    }
    
    if ($assigned_result) {
        while ($row = $assigned_result->fetch_assoc()) {
            $assigned_data[$row['month']] = $row;
        }
    }
    
    if ($total_result) {
        while ($row = $total_result->fetch_assoc()) {
            $total_data[$row['month']] = $row;
        }
    }
    
    // 合并数据
    $combined_data = [];
    
    foreach ($total_data as $month => $total) {
        $combined_data[$month] = [
            'month' => $month,
            'total_customer_count' => $total['customer_count'],
            'total_amount' => $total['total_amount'],
            'new_customer_count' => $new_data[$month]['customer_count'] ?? 0,
            'new_customer_amount' => $new_data[$month]['total_amount'] ?? 0,
            'old_customer_count' => $old_data[$month]['customer_count'] ?? 0,
            'old_customer_amount' => $old_data[$month]['total_amount'] ?? 0,
            'assigned_customer_count' => $assigned_data[$month]['customer_count'] ?? 0,
            'assigned_customer_amount' => $assigned_data[$month]['total_amount'] ?? 0
        ];
    }
    
    // 按月份排序
    ksort($combined_data);
    
    return array_values($combined_data);
}

/**
 * 导出数据为CSV
 */
function exportToCSV($data, $columns, $filename) {
    global $current_permission_role;
    // 设置头信息
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment;filename="' . $filename . '.csv"');
    header('Cache-Control: max-age=0');
    
    // 创建输出流
    $output = fopen('php://output', 'w');
    
    // 添加UTF-8 BOM以确保Excel正确显示中文
    fprintf($output, chr(0xEF).chr(0xBB).chr(0xBF));
    
    // 输出列头
    fputcsv($output, $columns);
    
    // 输出数据行
    foreach ($data as $row) {
        // 确保所有数据都是数组格式
        $rowData = array_values($row);
        fputcsv($output, $rowData);
    }
    
    fclose($output);
    exit;
}

/**
 * 渲染业务员客户构成统计表格
 */
function renderCustomerCompositionTable($data, $is_export = false) {
    if (empty($data)) {
        if (!$is_export) {
            echo '<div class="alert alert-info">当前选择范围内没有业绩数据</div>';
        }
        return;
    }
    
    // 准备数据
    $table_data = [];
    
    foreach ($data as $item) {
        $table_data[] = [
            '业务员' => $item['employee_name'],
            '总业绩' => $is_export ? $item['total_amount'] : formatCurrency($item['total_amount']),
            '新客户业绩' => $is_export ? $item['new_customer_amount'] : formatCurrency($item['new_customer_amount']),
            '新客户占比' => $is_export ? ($item['total_amount'] > 0 ? ($item['new_customer_amount'] / $item['total_amount']) * 100 : 0) : formatPercentage($item['new_customer_amount'], $item['total_amount']),
            '老客户业绩' => $is_export ? $item['old_customer_amount'] : formatCurrency($item['old_customer_amount']),
            '老客户占比' => $is_export ? ($item['total_amount'] > 0 ? ($item['old_customer_amount'] / $item['total_amount']) * 100 : 0) : formatPercentage($item['old_customer_amount'], $item['total_amount']),
            '分配客户业绩' => $is_export ? $item['assigned_customer_amount'] : formatCurrency($item['assigned_customer_amount']),
            '分配客户占比' => $is_export ? ($item['total_amount'] > 0 ? ($item['assigned_customer_amount'] / $item['total_amount']) * 100 : 0) : formatPercentage($item['assigned_customer_amount'], $item['total_amount'])
        ];
    }
    
    // 如果是导出请求,则导出数据
    if ($is_export) {
        exportToCSV(
            $table_data, 
            ['业务员', '总业绩', '新客户业绩', '新客户占比(%)', '老客户业绩', '老客户占比(%)', '分配客户业绩', '分配客户占比(%)'],
            '业务员客户构成统计_' . date('Ymd')
        );
        return;
    }
    
    // 渲染表格
    echo '<div class="row mt-5 mb-5">';
    echo '<div class="col-md-12">';
    echo '<div class="card">';
    echo '<div class="card-header d-flex justify-content-between align-items-center">';
    echo '<span>业务员客户构成统计</span>';
    // 只有管理员才显示导出按钮
    if ($GLOBALS['current_permission_role'] == 1) {
        echo '<a href="' . $_SERVER['REQUEST_URI'] . '&export=excel&type=employee" class="btn btn-sm btn-success ml-3">导出CSV</a>';
    }
    echo '</div>';
    echo '<div class="card-body">';
    echo '<div class="table-responsive">';
    echo '<table class="table table-bordered table-striped">';
    echo '<thead class="thead-light">';
    echo '<tr>';
    echo '<th style="width: 12%; text-align: left;">业务员</th>';
    echo '<th style="width: 12%; text-align: left;">总业绩</th>';
    echo '<th style="width: 12%; text-align: left;">新客户业绩</th>';
    echo '<th style="width: 12%; text-align: left;">新客户占比</th>';
    echo '<th style="width: 12%; text-align: left;">老客户业绩</th>';
    echo '<th style="width: 12%; text-align: left;">老客户占比</th>';
    echo '<th style="width: 12%; text-align: left;">分配客户业绩</th>';
    echo '<th style="width: 12%; text-align: left;">分配客户占比</th>';
    echo '</tr>';
    echo '</thead>';
    echo '<tbody>';
    
    foreach ($data as $item) {
        echo '<tr>';
        echo '<td>' . $item['employee_name'] . '</td>';
        echo '<td>' . formatCurrency($item['total_amount']) . '</td>';
        echo '<td>' . formatCurrency($item['new_customer_amount']) . '</td>';
        echo '<td>' . formatPercentage($item['new_customer_amount'], $item['total_amount']) . '</td>';
        echo '<td>' . formatCurrency($item['old_customer_amount']) . '</td>';
        echo '<td>' . formatPercentage($item['old_customer_amount'], $item['total_amount']) . '</td>';
        echo '<td>' . formatCurrency($item['assigned_customer_amount']) . '</td>';
        echo '<td>' . formatPercentage($item['assigned_customer_amount'], $item['total_amount']) . '</td>';
        echo '</tr>';
    }
    
    echo '</tbody>';
    echo '</table>';
    echo '</div>';
    echo '</div>';
    echo '</div>';
    echo '</div>';
    echo '</div>';
}

/**
 * 渲染每月客户构成统计表格
 */
function renderMonthlyCustomerCompositionTable($data, $is_export = false) {
    if (empty($data)) {
        if (!$is_export) {
            echo '<div class="alert alert-info">当前选择范围内没有月度业绩数据</div>';
        }
        return;
    }
    
    // 准备数据
    $table_data = [];
    
    foreach ($data as $item) {
        $table_data[] = [
            '月份' => $item['month'],
            '总业绩' => $is_export ? $item['total_amount'] : formatCurrency($item['total_amount']),
            '新客户业绩' => $is_export ? $item['new_customer_amount'] : formatCurrency($item['new_customer_amount']),
            '新客户占比' => $is_export ? ($item['total_amount'] > 0 ? ($item['new_customer_amount'] / $item['total_amount']) * 100 : 0) : formatPercentage($item['new_customer_amount'], $item['total_amount']),
            '老客户业绩' => $is_export ? $item['old_customer_amount'] : formatCurrency($item['old_customer_amount']),
            '老客户占比' => $is_export ? ($item['total_amount'] > 0 ? ($item['old_customer_amount'] / $item['total_amount']) * 100 : 0) : formatPercentage($item['old_customer_amount'], $item['total_amount']),
            '分配客户业绩' => $is_export ? $item['assigned_customer_amount'] : formatCurrency($item['assigned_customer_amount']),
            '分配客户占比' => $is_export ? ($item['total_amount'] > 0 ? ($item['assigned_customer_amount'] / $item['total_amount']) * 100 : 0) : formatPercentage($item['assigned_customer_amount'], $item['total_amount'])
        ];
    }
    
    // 如果是导出请求,则导出数据
    if ($is_export) {
        exportToCSV(
            $table_data, 
            ['月份', '总业绩', '新客户业绩', '新客户占比(%)', '老客户业绩', '老客户占比(%)', '分配客户业绩', '分配客户占比(%)'],
            '每月客户构成统计_' . date('Ymd')
        );
        return;
    }
    
    // 渲染表格
    echo '<div class="row mt-5 mb-5">';
    echo '<div class="col-md-12">';
    echo '<div class="card">';
    echo '<div class="card-header d-flex justify-content-between align-items-center">';
    echo '<span>每月客户构成统计</span>';
    // 只有管理员才显示导出按钮
    if ($GLOBALS['current_permission_role'] == 1) {
        echo '<a href="' . $_SERVER['REQUEST_URI'] . '&export=excel&type=monthly" class="btn btn-sm btn-success ml-3">导出CSV</a>';
    }
    echo '</div>';
    echo '<div class="card-body">';
    echo '<div class="table-responsive">';
    echo '<table class="table table-bordered table-striped">';
    echo '<thead class="thead-light">';
    echo '<tr>';
    echo '<th style="width: 12%; text-align: left;">月份</th>';
    echo '<th style="width: 12%; text-align: left;">总业绩</th>';
    echo '<th style="width: 12%; text-align: left;">新客户业绩</th>';
    echo '<th style="width: 12%; text-align: left;">新客户占比</th>';
    echo '<th style="width: 12%; text-align: left;">老客户业绩</th>';
    echo '<th style="width: 12%; text-align: left;">老客户占比</th>';
    echo '<th style="width: 12%; text-align: left;">分配客户业绩</th>';
    echo '<th style="width: 12%; text-align: left;">分配客户占比</th>';
    echo '</tr>';
    echo '</thead>';
    echo '<tbody>';
    
    foreach ($data as $item) {
        echo '<tr>';
        echo '<td>' . $item['month'] . '</td>';
        echo '<td>' . formatCurrency($item['total_amount']) . '</td>';
        echo '<td>' . formatCurrency($item['new_customer_amount']) . '</td>';
        echo '<td>' . formatPercentage($item['new_customer_amount'], $item['total_amount']) . '</td>';
        echo '<td>' . formatCurrency($item['old_customer_amount']) . '</td>';
        echo '<td>' . formatPercentage($item['old_customer_amount'], $item['total_amount']) . '</td>';
        echo '<td>' . formatCurrency($item['assigned_customer_amount']) . '</td>';
        echo '<td>' . formatPercentage($item['assigned_customer_amount'], $item['total_amount']) . '</td>';
        echo '</tr>';
    }
    
    echo '</tbody>';
    echo '</table>';
    echo '</div>';
    echo '</div>';
    echo '</div>';
    echo '</div>';
    echo '</div>';
}

// 获取选择的业务员
$selected_employee = isset($_GET['selected_employee']) ? $_GET['selected_employee'] : 'all';

// 确定要显示哪些业务员的数据
$employee_filter = null;

if ($selected_employee != 'all') {
    // 如果选择了特定业务员,则只显示该业务员的数据
    $employee_filter = intval($selected_employee);
} else {
    // 否则按权限显示相应的业务员数据
    if ($current_permission_role == 1) {
        // 管理员可以看到所有业务员
        $employee_filter = null;
    } elseif ($current_permission_role == 2) {
        // 组长可以看到自己和组员
        $visible_employees = [];
        $query = "SELECT id FROM employee WHERE id = " . intval($current_employee_id) . " OR em_role = " . intval($current_employee_id);
        $result = $conn->query($query);
        
        if ($result) {
            while ($row = $result->fetch_assoc()) {
                $visible_employees[] = $row['id'];
            }
        }
        
        $employee_filter = $visible_employees;
    } else {
        // 组员只能看到自己
        $employee_filter = intval($current_employee_id);
    }
}

// 获取业务员客户构成统计数据
$customer_composition_stats = getCustomerCompositionStats($conn, $start_date, $end_date, $employee_filter);

// 获取每月客户构成统计数据
$monthly_customer_composition = getMonthlyCustomerComposition($conn, $start_date, $end_date, $employee_filter);

// 处理导出请求
if ($is_export) {
    $export_type = isset($_GET['type']) ? $_GET['type'] : '';
    
    switch ($export_type) {
        case 'employee':
            renderCustomerCompositionTable($customer_composition_stats, true);
            break;
        case 'monthly':
            renderMonthlyCustomerCompositionTable($monthly_customer_composition, true);
            break;
    }
    
    exit; // 确保导出后停止执行
}

?>

<div class="container">
    <div class="page-header">
        <h1 class="page-title">业绩客户构成统计</h1>
    </div>
    
    <!-- 日期筛选 -->
    <div class="filter-form mb-5">
        <form method="get" class="filter-form-inline">
            <div class="form-group mr-3">
                <label for="date_range" class="mr-2">选择日期范围</label>
                <select class="form-control" id="date_range" name="date_range" onchange="toggleCustomDates()">
                    <option value="current_month" <?php echo $date_range == 'current_month' ? 'selected' : ''; ?>>本月</option>
                    <option value="last_month" <?php echo $date_range == 'last_month' ? 'selected' : ''; ?>>上月</option>
                    <option value="current_year" <?php echo $date_range == 'current_year' ? 'selected' : ''; ?>>今年</option>
                    <option value="last_30_days" <?php echo $date_range == 'last_30_days' ? 'selected' : ''; ?>>最近30天</option>
                    <option value="last_90_days" <?php echo $date_range == 'last_90_days' ? 'selected' : ''; ?>>最近90天</option>
                    <option value="custom" <?php echo $date_range == 'custom' ? 'selected' : ''; ?>>自定义日期范围</option>
                </select>
            </div>
            <div class="form-group custom-date-inputs mr-3" id="custom_start_date" style="display: <?php echo $date_range == 'custom' ? 'inline-block' : 'none'; ?>">
                <label for="start_date" class="mr-2">开始日期</label>
                <input type="date" class="form-control" id="start_date" name="start_date" value="<?php echo $date_params['custom_start']; ?>">
            </div>
            <div class="form-group custom-date-inputs mr-3" id="custom_end_date" style="display: <?php echo $date_range == 'custom' ? 'inline-block' : 'none'; ?>">
                <label for="end_date" class="mr-2">结束日期</label>
                <input type="date" class="form-control" id="end_date" name="end_date" value="<?php echo $date_params['custom_end']; ?>">
            </div>
            
            <!-- 业务员选择 -->
            <div class="form-group mr-3">
                <label for="selected_employee" class="mr-2">选择业务员</label>
                <select class="form-control" id="selected_employee" name="selected_employee">
                    <option value="all">所有业务员</option>
                    <?php
                    // 获取当前用户可见的业务员列表
                    $visible_employees_query = "";
                    
                    if ($current_permission_role == 1) {
                        // 管理员可以看到所有业务员
                        $visible_employees_query = "SELECT id, em_user FROM employee WHERE em_role IS NOT NULL ORDER BY em_user";
                    } elseif ($current_permission_role == 2) {
                        // 组长可以看到自己和组员
                        $visible_employees_query = "SELECT id, em_user FROM employee WHERE id = $current_employee_id OR em_role = $current_employee_id ORDER BY em_user";
                    } else {
                        // 组员只能看到自己
                        $visible_employees_query = "SELECT id, em_user FROM employee WHERE id = $current_employee_id";
                    }
                    
                    $visible_employees_result = $conn->query($visible_employees_query);
                    $selected_employee = isset($_GET['selected_employee']) ? $_GET['selected_employee'] : 'all';
                    
                    while ($emp = $visible_employees_result->fetch_assoc()) {
                        $selected = ($selected_employee == $emp['id']) ? 'selected' : '';
                        echo "<option value='".$emp['id']."' $selected>".$emp['em_user']."</option>";
                    }
                    ?>
                </select>
            </div>
            
            <div class="form-group">
                <button type="submit" class="btn btn-primary">应用筛选</button>
            </div>
        </form>
    </div>
    
    <!-- 统计内容区域 -->
    <div class="stats-content">
        <?php
        // 渲染表格
        renderCustomerCompositionTable($customer_composition_stats);
        renderMonthlyCustomerCompositionTable($monthly_customer_composition);
        ?>
    </div>
</div>

<style>
/* 添加一些额外的样式以改善表格显示 */
.filter-form {
    background-color: #f8f9fa;
    padding: 20px;
    border-radius: 5px;
    margin-bottom: 30px;
}

.filter-form-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
}

.filter-form .form-group {
    margin-bottom: 10px;
    margin-right: 15px;
}

/* 表格样式 */
.table {
    width: 100%;
    margin-bottom: 1rem;
}

.table th, .table td {
    padding: 12px;
    vertical-align: middle;
}

/* 确保表头也是左对齐 */
.thead-light th {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    text-align: left;
}

.table-striped tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.03);
}

.card {
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

.card-header {
    background-color: #f8f9fa;
    padding: 15px;
}

.card-body {
    padding: 1.5rem;
}

/* 添加按钮左边距 */
.ml-3 {
    margin-left: 15px !important;
}

/* 确保卡片头部布局正确 */
.card-header.d-flex {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}
</style>

<script>
function toggleCustomDates() {
    const dateRange = document.getElementById('date_range').value;
    const customDateInputs = document.querySelectorAll('.custom-date-inputs');
    
    if (dateRange === 'custom') {
        customDateInputs.forEach(el => el.style.display = 'inline-block');
    } else {
        customDateInputs.forEach(el => el.style.display = 'none');
    }
}
</script>

<?php
// 页面底部
include('statistics_footer.php');
?>