<?php
ob_start();
session_start();
date_default_timezone_set("Asia/Jakarta");
include('../config/koneksi.php');

$sql_0 = mysqli_query($conn,"SELECT * FROM `tb_seo` WHERE cuid = 1") or die(mysqli_error());
$s0 = mysqli_fetch_array($sql_0);
$urlweb = $s0['urlweb'];

// Konfigurasi
$logFile = __DIR__ . '/komisirabat_log.txt';
$minimalTransaksi = 200000; // Minimal transaksi per minggu
$persen = 0.10; // 10% rabat
$adminID = 1; // ID admin / panel yang akan dikurangi saldonya
$emailAdmin = "takterima8@gmail.com"; // Email notifikasi

$now = date('Y-m-d H:i');

// Check apakah hari ini Minggu pukul 15:00 WIB
if(date('N') != 7 || date('H:i') < '15:00'){
    exit; // tidak dijalankan selain Minggu jam 15:00
}

// Hitung minggu terakhir
$weeklyStart = date('Y-m-d H:i', strtotime('-7 days')); // 7 hari terakhir
$weeklyEnd = $now;

// Ambil semua user yang memiliki transaksi jenis 6 dalam minggu terakhir
$getUsers = mysqli_query($conn,"
    SELECT userID, SUM(total) as totalTransaksi
    FROM `tb_transaksi`
    WHERE `userID` NOT IN(1,20,116,121)
      AND `jenis` = 6
      AND `date` BETWEEN '$weeklyStart' AND '$weeklyEnd'
    GROUP BY userID
    ORDER BY userID
") or die(mysqli_error($conn));

$rows = []; // Simpan data untuk email
$log = "===== Komisi Rabat Mingguan Cron: $now =====\n";

while($gt = mysqli_fetch_array($getUsers)){
    $userID = $gt['userID'];
    $totalTransaksi = $gt['totalTransaksi'];

    // Bonus rabat 1%
    $bonusRabat = round($totalTransaksi * $persen);

    // Cek apakah user sudah menerima rabat minggu ini
    $cekRabat = mysqli_query($conn,"
        SELECT COUNT(*) as jml
        FROM `tb_transaksi`
        WHERE `userID` = '$userID'
          AND `jenis` = 4
          AND `date` BETWEEN '$weeklyStart' AND '$weeklyEnd'
    ") or die(mysqli_error($conn));
    $cr = mysqli_fetch_array($cekRabat);

    if($cr['jml'] == 0){
        if($totalTransaksi >= $minimalTransaksi){
            // Insert rabat
            $kode_unik = substr(str_shuffle('1234567890'),0,3);
            $kd_transaksi = date('Ymds').$kode_unik;

            $insertRabat = mysqli_query($conn,"
                INSERT INTO `tb_transaksi`
                (`kd_transaksi`,`date`,`transaksi`,`total`,`saldo`,`note`,
                `gameid`,`providerID`,`jenis`,`metode`,`pay_from`,`userID`,`status`)
                VALUES
                ('$kd_transaksi','$now','Rabate','$bonusRabat','$bonusRabat','Bonus Mingguan','',0,4,0,0,'$userID',1)
            ");

            if($insertRabat){
                // Update saldo user
                mysqli_query($conn,"UPDATE tb_user SET saldo = saldo + $bonusRabat WHERE cuid = '$userID'");
                // Kurangi saldo admin
                mysqli_query($conn,"UPDATE tb_user SET saldo = saldo - $bonusRabat WHERE cuid = '$adminID'");
                
                $log .= "Rabat user $userID berhasil: IDR ".number_format($bonusRabat,0,",",".")."\n";
                $rows[] = [
                    'userID' => $userID,
                    'totalTransaksi' => number_format($totalTransaksi,0,",","."),
                    'bonusRabat' => number_format($bonusRabat,0,",","."),
                    'status' => 'success'
                ];
            } else {
                $log .= "Gagal insert rabat user $userID: ".mysqli_error($conn)."\n";
                $rows[] = [
                    'userID' => $userID,
                    'totalTransaksi' => number_format($totalTransaksi,0,",","."),
                    'bonusRabat' => '0',
                    'status' => 'error'
                ];
            }
        } else {
            // Transaksi kurang dari minimal
            $log .= "User $userID tidak memenuhi minimal transaksi.\n";
            $rows[] = [
                'userID' => $userID,
                'totalTransaksi' => number_format($totalTransaksi,0,",","."),
                'bonusRabat' => '0',
                'status' => 'failed'
            ];
        }
    } else {
        $log .= "User $userID sudah menerima rabat minggu ini.\n";
        $rows[] = [
            'userID' => $userID,
            'totalTransaksi' => number_format($totalTransaksi,0,",","."),
            'bonusRabat' => '0',
            'status' => 'already'
        ];
    }
}

// Simpan log
file_put_contents($logFile, $log, FILE_APPEND);

// Buat email HTML
$html = "<h2>Log Komisi Rabat Mingguan</h2>";
$html .= "<p>Periode: $weeklyStart s/d $weeklyEnd</p>";
$html .= "<table border='1' cellpadding='5' cellspacing='0' style='border-collapse: collapse;'>";
$html .= "<tr style='background-color:#007bff;color:#fff;'><th>UserID</th><th>Total Transaksi</th><th>Bonus Rabat</th></tr>";

foreach($rows as $r){
    $color = 'black';
    if($r['status'] == 'failed'){
        $color = 'red'; // highlight user gagal dapat rabat
    } elseif($r['status'] == 'already'){
        $color = 'orange'; // highlight user sudah mendapat rabat minggu ini
    } elseif($r['status'] == 'error'){
        $color = 'purple'; // error insert
    } else {
        $color = 'green'; // sukses
    }

    $html .= "<tr style='text-align:center; color:$color;'>";
    $html .= "<td>{$r['userID']}</td>";
    $html .= "<td>{$r['totalTransaksi']}</td>";
    $html .= "<td>{$r['bonusRabat']}</td>";
    $html .= "</tr>";
}
$html .= "</table>";
$html .= "<p>Total User Diberikan Rabat: ".count(array_filter($rows, fn($r)=>$r['status']=='success'))."</p>";

// Kirim email
$subject = "Log Komisi Rabat Mingguan";
$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: noreply@domain.com\r\n"; // ganti sesuai domain server
mail($emailAdmin, $subject, $html, $headers);
?>
