= '" . mysqli_real_escape_string($conn, $fliterFromDate) . "'"; $urlStr .= "&fliterFromDate=" . urlencode($fliterFromDate); } if (!empty($fliterToDate)) { $fliterStr .= " AND rr.redemption_date <= '" . mysqli_real_escape_string($conn, $fliterToDate) . " 23:59:59'"; $urlStr .= "&fliterToDate=" . urlencode($fliterToDate); } // 搜索参数 $keys = $_GET['Keys'] ?? ''; $keyscode = mysqli_real_escape_string($conn, $keys); $page = isset($_GET['Page']) ? intval($_GET['Page']) : 1; // 构建基本条件SQL $employee_id = $_SESSION['employee_id']; $isAdmin = checkIfAdmin(); // 检查是否为财务角色或管理员 $isFinance = false; $checkRoleSql = "SELECT em_permission_role_id FROM employee WHERE id = $employee_id"; $roleResult = mysqli_query($conn, $checkRoleSql); if ($roleResult && $row = mysqli_fetch_assoc($roleResult)) { $isFinance = ($row['em_permission_role_id'] == 6 || $row['em_permission_role_id'] == 1); } // 基础查询,计算总记录数 $countSql = "SELECT COUNT(*) AS total FROM rebate_redemptions rr JOIN customer c ON rr.customer_id = c.id WHERE 1=1"; // 非管理员和非财务只能查看自己客户的返点历史 if (!$isAdmin && !$isFinance) { $countSql .= " AND c.cs_belong = $employee_id"; } // 添加搜索条件 if (!empty($keyscode)) { $countSql .= " AND (c.cs_company LIKE '%$keyscode%' OR c.cs_code LIKE '%$keyscode%')"; } // 添加日期筛选 $countSql .= $fliterStr; // 执行查询获取总记录数 $countResult = mysqli_query($conn, $countSql); if (!$countResult) { die("查询记录数量错误: " . mysqli_error($conn)); } $countRow = mysqli_fetch_assoc($countResult); $totalRecords = $countRow['total']; // 设置每页显示记录数和分页 $pageSize = 20; // 计算总页数 $totalPages = ceil($totalRecords / $pageSize); if ($totalPages < 1) $totalPages = 1; // 验证当前页码 if ($page < 1) $page = 1; if ($page > $totalPages) $page = $totalPages; // 计算起始记录 $offset = ($page - 1) * $pageSize; // 查询返点兑换历史记录 $sql = "SELECT rr.id AS redemption_id, rr.customer_id, c.cs_code, c.cs_company AS customer_name, rr.redemption_date, rr.total_rebate_amount, rr.notes, rr.status, rr.examine_status, rr.examine_date, e.em_user AS employee_name, e2.em_user AS examine_by_name, (SELECT COUNT(DISTINCT product_id) FROM rebate_redemption_items WHERE redemption_id = rr.id) AS product_count FROM rebate_redemptions rr JOIN customer c ON rr.customer_id = c.id LEFT JOIN employee e ON rr.created_by = e.id LEFT JOIN employee e2 ON rr.examine_by = e2.id WHERE 1=1"; // 非管理员和非财务只能查看自己客户的返点历史 if (!$isAdmin && !$isFinance) { $sql .= " AND c.cs_belong = $employee_id"; } // 添加搜索条件 if (!empty($keyscode)) { $sql .= " AND (c.cs_company LIKE '%$keyscode%' OR c.cs_code LIKE '%$keyscode%')"; } // 添加日期筛选 $sql .= $fliterStr; // 添加排序和分页 $sql .= " ORDER BY rr.redemption_date DESC, rr.id DESC LIMIT $offset, $pageSize"; $result = mysqli_query($conn, $sql); if (!$result) { die("查询返点历史错误: " . mysqli_error($conn)); } // 获取返点历史记录 $redemptions = []; while ($row = mysqli_fetch_assoc($result)) { $redemptions[] = $row; } // 处理审核操作 if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action']) && $_POST['action'] === 'examine' && $isFinance) { $redemptionId = isset($_POST['redemption_id']) ? intval($_POST['redemption_id']) : 0; $examineStatus = isset($_POST['examine_status']) ? intval($_POST['examine_status']) : 0; if ($redemptionId > 0 && in_array($examineStatus, [1, 2])) { $updateSql = "UPDATE rebate_redemptions SET examine_status = $examineStatus, examine_date = NOW(), examine_by = $employee_id WHERE id = $redemptionId"; if (mysqli_query($conn, $updateSql)) { // 刷新页面以显示更新后的状态 echo ""; exit; } else { echo ""; } } } ?>