query('SELECT DISTINCT NAMA_SALES FROM tabelmaster WHERE NAMA_SALES IS NOT NULL AND NAMA_SALES != "" ORDER BY NAMA_SALES'); $sales_options = $sales_options_stmt->fetchAll(PDO::FETCH_COLUMN); $periode_options_stmt = $pdo->query('SELECT DISTINCT PERIODE FROM tabelmaster WHERE PERIODE IS NOT NULL AND PERIODE != "" ORDER BY PERIODE DESC'); $periode_options = $periode_options_stmt->fetchAll(PDO::FETCH_COLUMN); // Handle form submission for analysis $analysis_results = []; $chart_labels_json = '[]'; $chart_data_json = '[]'; $selected_sales = $_POST['nama_sales'] ?? 'all'; $selected_periode = $_POST['periode'] ?? 'all'; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['run_analysis'])) { $sql = " SELECT MERK, SUM(QTY) as total_qty, SUM(QTY * CAST(REPLACE(HARGA, ",", "") AS DECIMAL(15,2))) as total_omzet, AVG(CAST(REPLACE(HARGA, ",", "") AS DECIMAL(15,2))) as avg_price, COUNT(DISTINCT NO_FAKTUR) as transactions_count FROM tabelmaster WHERE 1=1"; $params = []; if ($selected_sales !== 'all') { $sql .= ' AND NAMA_SALES = :nama_sales'; $params[':nama_sales'] = $selected_sales; } if ($selected_periode !== 'all') { $sql .= ' AND PERIODE = :periode'; $params[':periode'] = $selected_periode; } $sql .= ' GROUP BY MERK HAVING SUM(QTY) > 0 ORDER BY total_omzet DESC'; $analysis_stmt = $pdo->prepare($sql); $analysis_stmt->execute($params); $analysis_results = $analysis_stmt->fetchAll(); if (!empty($analysis_results)) { $chart_labels = []; $chart_data = []; foreach ($analysis_results as $row) { $chart_labels[] = $row['MERK']; $chart_data[] = $row['total_omzet']; } $chart_labels_json = json_encode($chart_labels); $chart_data_json = json_encode($chart_data); } } // Get total records for raw data pagination $total_stmt = $pdo->query('SELECT COUNT(*) FROM tabelmaster'); $total_records = $total_stmt->fetchColumn(); $total_pages = ceil($total_records / $limit); // Fetch records for the current page of raw data $stmt = $pdo->prepare('SELECT * FROM tabelmaster ORDER BY TANGGAL DESC, NO_FAKTUR DESC LIMIT :limit OFFSET :offset'); $stmt->bindParam(':limit', $limit, PDO::PARAM_INT); $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $records = $stmt->fetchAll(); } catch (PDOException $e) { $error_message = "Database error: " . $e->getMessage(); } require_once 'header.php'; ?>
Analisa Penjualan per Merk
Hasil Analisa
Merk Total Kuantitas Total Omzet Harga Rata-rata Jumlah Transaksi
Rp Rp
Hasil Analisa
Tidak ada data yang cocok dengan filter yang dipilih.
Data Master
Nama Sales Tanggal No Faktur Merk Outlet Produk Qty Harga Bulan Tahun Periode