TIF_NGANJUK_E41212020/admin/transaksi/detail.php

222 lines
9.2 KiB
PHP

<?php
include '../template/template1.php';
include '../template/header.php';
include '../template/sidebar.php';
require '../../vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
if (!isset($_GET['id'])) {
echo "<script>window.location.href='index.php';</script>";
exit;
}
$id_order = $_GET['id'];
$query = mysqli_query($conn, "
SELECT orders.*, pembeli.*
FROM orders
JOIN pembeli ON orders.id_pembeli = pembeli.id_pembeli
WHERE orders.id_order = '$id_order'
");
$data = mysqli_fetch_assoc($query);
if (!$data) {
echo "<script>window.location.href='index.php';</script>";
exit;
}
if (isset($_POST['ubah_status'])) {
$status_baru = $_POST['status_order'];
$update = mysqli_query($conn, "UPDATE orders SET status_order = '$status_baru' WHERE id_order = '$id_order'");
if ($update) {
if ($status_baru == 'Selesai') {
$email_penerima = $data['email'];
$nama_pembeli = $data['nama_pembeli'];
$total = number_format($data['total_harga'], 0, ',', '.');
$tanggal = date('d-m-Y H:i', strtotime($data['tanggal_order']));
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'chickycuts2025@gmail.com';
$mail->Password = 'etccszhnwgvvgxfx';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('chickycuts2025@gmail.com', 'ChickyCuts');
$mail->addAddress($email_penerima, $nama_pembeli);
$mail->isHTML(true);
$mail->Subject = 'Pesanan Anda Telah Selesai';
$mail->Body = "
<h3>Halo $nama_pembeli!</h3>
<p>Pesanan Anda dengan ID Order <strong>$id_order</strong> telah selesai.</p>
<p><strong>Total Pembayaran:</strong> Rp $total</p>
<p><strong>Tanggal Order:</strong> $tanggal</p>
<br>
<p>Terima kasih telah berbelanja di <strong>{$profile['nama_usaha']}</strong>.</p>
";
$mail->send();
} catch (Exception $e) {
error_log("Email gagal dikirim: {$mail->ErrorInfo}");
}
}
echo "<script>
document.addEventListener('DOMContentLoaded', function() {
Swal.fire({
icon: 'success',
title: 'Berhasil',
text: 'Status berhasil diperbarui!',
confirmButtonText: 'OK'
}).then(() => {
window.location.href = 'detail.php?id=$id_order';
});
});
</script>";
} else {
echo "<script>
document.addEventListener('DOMContentLoaded', function() {
Swal.fire({
icon: 'error',
title: 'Gagal',
text: 'Gagal mengubah status!',
confirmButtonText: 'OK'
});
});
</script>";
}
}
$query = mysqli_query($conn, "SELECT * FROM profil WHERE id_usaha = 1");
$profile = mysqli_fetch_assoc($query);
?>
<main id="main" class="main">
<div class="pagetitle">
<h1>Detail Transaksi</h1>
<nav>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.php">Transaksi</a></li>
<li class="breadcrumb-item active">Detail</li>
</ol>
</nav>
</div>
<div class="card shadow-sm">
<div class="card-body p-4">
<h5 class="card-title mb-4">Informasi Order</h5>
<div class="row gy-2">
<div class="col-md-6">
<p><strong>ID Order:</strong> <?= $data['id_order']; ?></p>
<p><strong>Nama Pembeli:</strong> <?= $data['nama_pembeli']; ?></p>
<p><strong>Email:</strong> <?= $data['email']; ?></p>
</div>
<div class="col-md-6">
<p><strong>No. HP Pembeli:</strong> <?= $data['no_hp']; ?></p>
<?php
$nama_pembeli = $data['nama_pembeli'];
$id_order = $data['id_order'];
$no_hp = '62' . ltrim($data['no_hp'], '0');
$nama_usaha = $profile['nama_usaha'];
$pesan = urlencode("Halo $nama_pembeli, saya kurir dari $nama_usaha. Saya sedang dalam perjalanan untuk mengantarkan pesanan Anda dengan ID Order $id_order. Mohon konfirmasi lokasi atau hubungi saya jika ada perubahan. Terima kasih!");
$link_wa = "https://wa.me/$no_hp?text=$pesan";
?>
<a href="<?= $link_wa; ?>" target="_blank" class="btn btn-success btn-sm mt-2">Chat Pembeli</a>
</div>
<div class="col-md-6">
<p><strong>Metode Pembayaran:</strong> <?= $data['metode_pembayaran']; ?></p>
<p><strong>Total Harga:</strong> Rp <?= number_format($data['total_harga'], 0, ',', '.'); ?></p>
</div>
<div class="col-md-6">
<p><strong>Tanggal Order:</strong> <?= date('d-m-Y', strtotime($data['tanggal_order'])); ?></p>
</div>
<div class="col-md-6">
<p><strong>Alamat:</strong> <?= $data['alamat']; ?></p>
<a href="https://www.google.com/maps/search/?api=1&query=<?= urlencode($data['alamat']); ?>" target="_blank" class="btn btn-primary btn-sm mt-2">Lihat Maps</a>
</div>
<?php if (!empty($data['bukti_pembayaran'])): ?>
<div class="col-md-6">
<button type="button" class="btn btn-outline-primary btn-sm" onclick="showBuktiPembayaran()">
Lihat Bukti Pembayaran
</button>
</div>
<?php endif; ?>
<div class="col-md-6">
<p><strong>Status Saat Ini:</strong>
<span class="badge
<?php
switch ($data['status_order']) {
case 'Belum Dibayar': echo 'bg-secondary'; break;
case 'Pembayaran Sukses': echo 'bg-primary'; break;
case 'Diproses': echo 'bg-warning text-dark'; break;
case 'Dikemas': echo 'bg-info text-dark'; break;
case 'Dikirim': echo 'bg-success'; break;
case 'Selesai': echo 'bg-dark'; break;
case 'Dibatalkan': echo 'bg-danger'; break;
default: echo 'bg-light text-dark';
}
?>">
<?= $data['status_order']; ?>
</span>
</p>
</div>
</div>
<hr class="my-4">
<form method="POST">
<div class="row align-items-end">
<div class="col-md-6 mb-2">
<label for="status_order"><strong>Ubah Status Order:</strong></label>
<select name="status_order" class="form-select" required>
<?php
$statuses = [
'Belum Dibayar',
'Pembayaran Sukses',
'Diproses',
'Dikemas',
'Dikirim',
'Selesai',
'Dibatalkan'
];
foreach ($statuses as $status) {
$selected = ($data['status_order'] == $status) ? 'selected' : '';
echo "<option value=\"$status\" $selected>$status</option>";
}
?>
</select>
</div>
<div class="col-md-6 mb-2 d-flex gap-2">
<button type="submit" name="ubah_status" class="btn btn-success">Simpan</button>
<a href="index.php" class="btn btn-secondary">Kembali</a>
</div>
</div>
</form>
</div>
</div>
</main>
<!-- <script src="https://cdn.jsdelivr.net/npm/medium-zoom@1.0.0/dist/medium-zoom.min.js"></script>
<script>
mediumZoom('.zoom');
function showBuktiPembayaran() {
Swal.fire({
title: 'Bukti Pembayaran',
html: '<img src="../../assets/img/bukti_pembayaran/<?= $data['bukti_pembayaran']; ?>" class="img-fluid zoom" />',
showCloseButton: true,
showConfirmButton: false
});
}
</script> -->
<?php include '../template/footer.php'; ?>
<?php include '../template/template2.php'; ?>