<?php
include_once '../koneksi.php';
include_once '../classes/APICONFIG.php';

function logToFile($message) {
    $logFile = '../logs/Aprove.txt';  // Pastikan folder logs ada
    $timestamp = date("Y-m-d H:i:s");
    $logMessage = "[$timestamp] $message" . PHP_EOL;
    file_put_contents($logFile, $logMessage, FILE_APPEND);
}

if (!isset($_SESSION['kode_admin'])) {
    logToFile("ERROR: Akses tidak sah - sesi admin tidak ditemukan.");
    echo '
      <script>
        alert("Terjadi kesalahan, harap masuk kembali!");
        window.location.replace("'.$alamat_admin.'keluar.php");
      </script>
    ';
    exit();
}

if (isset($_GET['id_deposit'])) {
    $id_deposit = $_GET['id_deposit'];
    $deposit = mysqli_query($koneksi, "SELECT * FROM deposit WHERE id_deposit = '$id_deposit'");
    $data_deposit = mysqli_fetch_array($deposit);
    $id_anggota_deposit = $data_deposit['id_anggota_deposit'];
    $jumlah_deposit = $data_deposit['jumlah_deposit'];
    $status_deposit = $data_deposit['status_deposit'];
    $nama_anggota_pengguna_deposit = $data_deposit['nama_pengguna_anggota_deposit'];

    $anggota = mysqli_query($koneksi, "SELECT * FROM anggota WHERE id_anggota = '$id_anggota_deposit'");
    $data_anggota = mysqli_fetch_array($anggota);
    $saldo_anggota = $data_anggota['saldo_anggota'];

    logToFile("INFO: Mengambil data deposit ID $id_deposit untuk user $nama_anggota_pengguna_deposit.");
} else {
    logToFile("ERROR: ID deposit tidak ditemukan.");
    echo '
      <script>
        alert("Pilih deposit yang ingin diubah!");
        window.location.replace("'.$alamat_admin.'deposit");
      </script>
    ';
    exit();
}

if (isset($_POST['ubah_data'])) {
    $status_deposit_2 = $_POST['status_deposit'];

    if ($status_deposit_2 == "disetujui") {
        $saldo_anggota_fix = $saldo_anggota + $jumlah_deposit;

        // Update saldo anggota
        $perbarui_anggota = mysqli_query($koneksi, "UPDATE anggota SET saldo_anggota = '$saldo_anggota_fix' WHERE id_anggota = '$id_anggota_deposit'");
        
        if ($perbarui_anggota) {
            logToFile("SUCCESS: Saldo user $nama_anggota_pengguna_deposit diperbarui menjadi $saldo_anggota_fix.");

            // Update status deposit
            $ubah_data = mysqli_query($koneksi, "UPDATE deposit SET status_deposit = '$status_deposit_2' WHERE id_deposit = '$id_deposit'");

            if ($ubah_data) {
                logToFile("SUCCESS: Status deposit ID $id_deposit berhasil diperbarui menjadi 'disetujui'.");

                // Kirim data ke API (Gunakan URL langsung tanpa tambahan /deposit)
                $api_url = API_BASE_URL;
                $post_data = json_encode([
                    "method"      => "user_deposit",
                    "agent_code"  => AGENT_CODE,
                    "agent_token" => AGENT_TOKEN,
                    "user_code"   => $nama_anggota_pengguna_deposit,
                    "amount"      => floatval($jumlah_deposit)
                ]);

                logToFile("INFO: Mengirim request ke API: $api_url dengan data: " . $post_data);

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $api_url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
                curl_setopt($ch, CURLOPT_HTTPHEADER, [
                    'Content-Type: application/json'
                ]);

                $api_response = curl_exec($ch);
                $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                $curl_error = curl_error($ch);
                curl_close($ch);

                if ($http_code == 200) {
                    logToFile("SUCCESS: Data deposit ID $id_deposit berhasil dikirim ke API. Response: $api_response");
                    echo '
                      <script>
                        alert("Berhasil ubah data dan deposit terkirim ke API.");
                        window.location.replace("'.$alamat_admin.'deposit");
                      </script>
                    ';
                } else {
                    logToFile("ERROR: Gagal mengirim deposit ID $id_deposit ke API. HTTP Code: $http_code, cURL Error: $curl_error, Response: $api_response");
                    echo '
                      <script>
                        alert("Deposit berhasil diperbarui tetapi gagal mengirim ke API.");
                        window.location.replace("'.$alamat_admin.'deposit");
                      </script>
                    ';
                }
            } else {
                logToFile("ERROR: Gagal mengubah status deposit ID $id_deposit. Error: " . mysqli_error($koneksi));
                echo "Proses Gagal<br>Error : ".mysqli_error($koneksi);
            }
        } else {
            logToFile("ERROR: Gagal memperbarui saldo user $nama_anggota_pengguna_deposit. Error: " . mysqli_error($koneksi));
            echo "Proses Gagal<br>Error : ".mysqli_error($koneksi);
        }
    } else if ($status_deposit_2 == "dibatalkan") {
        $ubah_data = mysqli_query($koneksi, "UPDATE deposit SET status_deposit = '$status_deposit_2' WHERE id_deposit = '$id_deposit'");
        if ($ubah_data) {
            logToFile("INFO: Deposit ID $id_deposit dibatalkan.");
            echo '
              <script>
                alert("Berhasil ubah data.");
                window.location.replace("'.$alamat_admin.'deposit");
              </script>
            ';
        } else {
            logToFile("ERROR: Gagal membatalkan deposit ID $id_deposit. Error: " . mysqli_error($koneksi));
            echo "Proses Gagal<br>Error : ".mysqli_error($koneksi);
        }
    }
}
?>





<div class="container-xxl flex-grow-1 container-p-y">
  <div class="row gy-4 mb-4">
    <div class="col-md-6">
      <div class="fw-bold fs-4 text-center text-md-start">Deposit</div>
    </div>
    <div class="col-md-6">
      <div class="text-center text-md-end">
        <a href="<?php echo $alamat_admin.'deposit'; ?>" class="btn btn-sm btn-primary waves-effect waves-light">
          <span class="tf-icons mdi mdi-chevron-double-left me-1"></span>
          Kembali
        </a>
      </div>
    </div>
  </div>

  <div class="card mb-4">
    <h5 class="card-header">Ubah Data Deposit</h5>
    <form method="post" class="card-body">
      <div class="row g-3">
        <div class="col-md-6">
          <div class="form-floating form-floating-outline">
            <input type="text" class="form-control" value="<?php echo $jumlah_deposit; ?>" readonly disabled>
            <label>Jumlah</label>
          </div>
        </div>
        <div class="col-md-6">
          <div class="form-floating form-floating-outline mb-4">
            <?php
              if ($status_deposit == "diproses") {
            ?>
            <select name="status_deposit" class="form-select select2" required>
            <?php
              } else {
            ?>
            <select name="status_deposit" class="form-select select2" required disabled>
            <?php
              }
              if ($status_deposit == "diproses") {
            ?>
            <option value="diproses" selected>Diproses</option>
            <option value="dibatalkan">Dibatalkan</option>
            <option value="disetujui">Disetujui</option>
            <?php
              } else if ($status_deposit == "dibatalkan") {
            ?>
            <option value="dibatalkan" selected>Dibatalkan</option>
            <option value="diproses">Diproses</option>
            <option value="disetujui">Disetujui</option>
            <?php
              } else if ($status_deposit == "disetujui") {
            ?>
            <option value="disetujui" selected>Disetujui</option>
            <option value="dibatalkan">Dibatalkan</option>
            <option value="diproses">Diproses</option>
            <?php
              }
            ?>
            </select>
            <label>Status</label>
          </div>
        </div>
      </div>
      <div class="pt-4 text-end">
        <button type="button" class="btn btn-danger waves-effect waves-light me-sm-3 me-1" data-bs-toggle="modal" data-bs-target="#hapus_data">
          <span class="tf-icons mdi mdi-delete me-1"></span>
          Hapus
        </button>
        <button type="submit" name="ubah_data" class="btn btn-primary waves-effect waves-light">
          <span class="tf-icons mdi mdi-content-save me-1"></span>
          Simpan
        </button>
      </div>
    </form>
  </div>
</div>
<!-- Modal Hapus Data -->
<div class="modal fade" id="hapus_data" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h1 class="modal-title fs-5">Hapus Data</h1>
        <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
      </div>
      <form method="post">
        <div class="modal-body">
          Yakin ingin menghapus data ini?
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
          <button type="submit" name="hapus_data" class="btn btn-danger">Hapus</button>
        </div>
      </form>
    </div>
  </div>
</div>
