= ?"; $params[] = $from_date; $types .= "s"; } if ($to_date) { $where_clauses[] = "s.sale_date <= ?"; $params[] = $to_date; $types .= "s"; } if ($payment_mode_filter) { $where_clauses[] = "s.payment_mode = ?"; $params[] = $payment_mode_filter; $types .= "s"; } $where_sql = !empty($where_clauses) ? "WHERE " . implode(" AND ", $where_clauses) : ""; // Get total count $count_sql = "SELECT COUNT(*) as total FROM sales s $where_sql"; $count_result = !empty($params) ? fetchSingle($count_sql, $types, $params) : fetchSingle($count_sql); $total_records = $count_result ? $count_result['total'] : 0; $total_pages = ceil($total_records / $per_page); // Get sales $sql = " SELECT s.*, u.full_name as added_by_name FROM sales s JOIN users u ON s.added_by = u.user_id $where_sql ORDER BY s.sale_date DESC, s.created_at DESC LIMIT $per_page OFFSET $offset "; $sales = !empty($params) ? fetchAll($sql, $types, $params) : fetchAll($sql); // Get summary $summary_sql = "SELECT SUM(total_amount) as total FROM sales s $where_sql"; $summary_result = !empty($params) ? fetchSingle($summary_sql, $types, $params) : fetchSingle($summary_sql); $total_sales = $summary_result ? floatval($summary_result['total']) : 0; // Get payment mode summary $payment_summary = []; $payment_modes = ['cash', 'upi', 'card', 'bank_transfer', 'credit']; foreach ($payment_modes as $mode) { $mode_where = !empty($where_clauses) ? $where_sql . " AND s.payment_mode = ?" : "WHERE s.payment_mode = ?"; $mode_params = $params; $mode_params[] = $mode; $mode_types = $types . "s"; $mode_sql = "SELECT COUNT(*) as count, COALESCE(SUM(total_amount), 0) as total FROM sales s $mode_where"; $mode_result = fetchSingle($mode_sql, $mode_types, $mode_params); $payment_summary[$mode] = [ 'count' => $mode_result ? $mode_result['count'] : 0, 'total' => $mode_result ? floatval($mode_result['total']) : 0 ]; } // Success/error messages $success_message = ''; $error_message = ''; if (isset($_GET['success'])) { if ($_GET['success'] === 'deleted') { $success_message = 'Sale entry deleted successfully!'; } } if (isset($_GET['error'])) { if ($_GET['error'] === 'invalid') { $error_message = 'Invalid sale entry ID'; } elseif ($_GET['error'] === 'notfound') { $error_message = 'Sale entry not found'; } } $page_title = 'View Sales'; require_once __DIR__ . '/../includes/header.php'; ?>

View All Sales

Filter Sales

Clear
Cash
transactions
UPI
transactions
Card
transactions
Bank Transfer
transactions
Credit
transactions
Total Sales
transactions

Sales Records ( to )

➕ Add Sale
'#28a745', 'upi' => '#17a2b8', 'card' => '#6f42c1', 'bank_transfer' => '#fd7e14', 'credit' => '#dc3545' ]; $mode_color = $mode_colors[$sale['payment_mode']] ?? '#6c757d'; ?> 1): ?>
Date Amount Payment Mode Notes Added By Added On Actions
30): ?>... ✏️ 🗑️
Page Total:
Grand Total:
1): ?>
1): ?> ← Previous Page of Next →
💰

No sales records found

No sales found matching your filters. Try adjusting the date range or filters. Start by adding your first sale entry

➕ Add Sale