= ?"; $params[] = $dateFrom; } if ($dateTo) { $whereConditions[] = "s.sale_date <= ?"; $params[] = $dateTo; } if ($segmentFilter) { $whereConditions[] = "s.segment_id = ?"; $params[] = $segmentFilter; } if ($categoryFilter) { $whereConditions[] = "s.category_id = ?"; $params[] = $categoryFilter; } if ($search) { $whereConditions[] = "(s.title LIKE ? OR s.customer_name LIKE ? OR s.invoice_number LIKE ?)"; $params[] = "%$search%"; $params[] = "%$search%"; $params[] = "%$search%"; } // User-specific filter for non-admin users if ($currentUser['role'] !== 'admin' && !hasPermission('manage_sales')) { $whereConditions[] = "s.created_by = ?"; $params[] = $currentUser['id']; } $whereClause = !empty($whereConditions) ? 'WHERE ' . implode(' AND ', $whereConditions) : ''; // Get sales data for export $exportQuery = " SELECT s.invoice_number as 'Invoice Number', s.title as 'Product/Service', s.amount as 'Amount', s.quantity as 'Quantity', s.unit_price as 'Unit Price', s.sale_date as 'Sale Date', s.customer_name as 'Customer Name', s.customer_phone as 'Customer Phone', bs.name as 'Business Segment', c.name as 'Category', s.description as 'Description', u.full_name as 'Created By', s.created_at as 'Created Date' FROM sales s LEFT JOIN business_segments bs ON s.segment_id = bs.id LEFT JOIN categories c ON s.category_id = c.id LEFT JOIN users u ON s.created_by = u.id {$whereClause} ORDER BY s.sale_date DESC, s.created_at DESC "; $salesData = fetchAll($exportQuery, $params); // Format data for CSV export $exportData = []; foreach ($salesData as $row) { $formattedRow = []; foreach ($row as $key => $value) { // Format specific fields switch ($key) { case 'Amount': case 'Unit Price': $formattedRow[$key] = number_format((float)$value, 2); break; case 'Quantity': $formattedRow[$key] = number_format((float)$value, 1); break; case 'Sale Date': case 'Created Date': $formattedRow[$key] = $value ? date('d-m-Y H:i', strtotime($value)) : ''; break; default: $formattedRow[$key] = $value ?? ''; } } $exportData[] = $formattedRow; } // Generate filename $filename = 'sales_export_' . date('Y-m-d_H-i-s') . '.csv'; // Log export activity logSystemActivity('Export Sales', "Exported " . count($exportData) . " sales records"); // Export to CSV exportToCSV($exportData, $filename); ?>