menambahkan perubahan

This commit is contained in:
nylaaptr 2026-07-02 12:34:39 +07:00
parent e4fc7f0767
commit b180dcb437
27 changed files with 266 additions and 71 deletions

View File

@ -5,6 +5,7 @@
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use App\Models\ChatSession;
use App\Models\ChatbotMessage;
@ -44,6 +45,34 @@ public function index()
public function kirim(Request $request)
{
$pesanUser = $request->input('message');
$pesanLower = strtolower($pesanUser);
$keywordProperti = [
'rumah',
'properti',
'katalog',
'ruko',
'subsidi',
'tipe',
'cluster',
'unit',
'harga',
'beli rumah',
'cari rumah',
'lihat rumah',
'lihat katalog',
'show katalog',
'perumahan'
];
$perluTampilkanKatalog = false;
foreach ($keywordProperti as $keyword) {
if (str_contains($pesanLower, $keyword)) {
$perluTampilkanKatalog = true;
break;
}
}
$userId = Auth::id();
@ -189,11 +218,18 @@ public function kirim(Request $request)
Jika ingin merekomendasikan properti, gunakan format:
[REKOMENDASI:id]
Jika pengguna meminta melihat rumah, properti, ruko, katalog, unit, atau mencari rumah berdasarkan budget, lokasi, tipe, maupun kategori, WAJIB sertakan tag:
[REKOMENDASI:id]
Contoh:
[REKOMENDASI:1,2]
";
try {
$client = new \GuzzleHttp\Client();
@ -210,22 +246,17 @@ public function kirim(Request $request)
],
'json' => [
'model' => 'llama-3.1-8b-instant',
'max_tokens' => 500,
'messages' => [
[
'role' => 'system',
'content' => $systemPrompt
],
[
'role' => 'user',
'content' => $pesanUser
]
]
@ -242,6 +273,7 @@ public function kirim(Request $request)
$balasan =
$result['choices'][0]['message']['content']
?? 'Tidak ada balasan';
Log::info($balasan);
// =========================
@ -279,7 +311,7 @@ public function kirim(Request $request)
'luas_tanah',
'stok_unit'
)
->get()
->get(1)
->toArray();
// hapus tag dari chat
@ -304,15 +336,10 @@ public function kirim(Request $request)
// SIMPAN BALASAN BOT
// =========================
DB::table('chat_messages')->insert([
'id_sessions' => $sessionId,
'sender' => 'bot',
'message' => $balasan,
'properti_data' => json_encode($rekomendasiProperti),
'created_at' => now()
]);

View File

@ -264,11 +264,34 @@ public function update(Request $request, $id)
// KHUSUS PELUNASAN
if (
strtolower($request->progres) == 'pelunasan' ||
strtolower($request->tahap_saat_ini) == 'pelunasan pembayaran'
strtolower($request->progres) == 'pelunasan' &&
$request->status != 'Selesai'
) {
$judul = 'Tagihan Pelunasan';
$pesan = 'Silakan melakukan pelunasan pembayaran rumah Anda. Klik notifikasi ini untuk melihat invoice dan detail tagihan.';
Notifikasi::create([
'id_user' => $pemesanan->id_user,
'judul' => $judul,
'pesan' => $pesan,
'tipe' => 'pelunasan',
'status_baca' => 0,
'status_kirim' => 'terkirim',
'channel' => 'in_app',
'referensi_id' => $transaksi->id_transaksi,
'referensi_tipe' => 'invoice',
]);
}
elseif (
strtolower($request->tahap_saat_ini) == 'pelunasan pembayaran' &&
$request->status == 'Selesai'
) {
$judul = 'Pelunasan Berhasil';
$pesan = 'Pembayaran Anda telah berhasil diverifikasi. Klik notifikasi ini untuk melihat invoice.';
Notifikasi::create([
'id_user' => $pemesanan->id_user,
'judul' => $judul,

View File

@ -505,6 +505,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -526,7 +532,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -744,6 +744,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -765,7 +771,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -630,6 +630,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -651,7 +657,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -545,6 +545,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -566,7 +572,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"
@ -758,11 +764,6 @@ class="nav-item {{ request()->routeIs('admin.pesan_pelanggan') ? 'active' : '' }
'desc' => 'Dokumen diverifikasi admin'
],
[
'title' => 'Proses Bank',
'desc' => 'Pelanggan sedang mengurus pengajuan KPR ke bank'
],
[
'title' => 'KPR Disetujui Bank',
'desc' => 'Pelanggan telah mendapat persetujuan dari bank'

View File

@ -654,6 +654,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -675,7 +681,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -624,6 +624,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -645,7 +651,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -604,6 +604,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -625,7 +631,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -769,6 +769,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -790,7 +796,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -862,6 +862,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -883,7 +889,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -989,6 +989,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -1010,7 +1016,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -620,6 +620,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -641,7 +647,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -800,6 +800,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -821,7 +827,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -1388,6 +1388,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -1409,7 +1415,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -599,6 +599,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -620,7 +626,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -698,6 +698,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -719,7 +725,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -630,6 +630,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -651,7 +657,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -915,6 +915,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -936,7 +942,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"
@ -987,7 +993,9 @@ class="nav-item {{ request()->routeIs('admin.pesan_pelanggan') ? 'active' : '' }
<div class="verification-header">
<h2 class="verification-title">
Verifikasi Dokumen - {{ $user->nama_user }}
<small>{{ \Carbon\Carbon::parse($transaksi->tanggal_transaksi)->format('d/m/Y H:i') }}</small>
<small>
{{ \Carbon\Carbon::parse($transaksi->dokumen->first()->uploaded_at)->format('d/m/Y H:i') }}
</small>
</h2>
</div>

View File

@ -696,6 +696,12 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<span>Dashboard</span>
</a>
<a href="{{ route('admin.data_user') }}"
class="nav-item {{ request()->routeIs('admin.data_user') ? 'active' : '' }}">
<i class="fas fa-user"></i>
<span>Data User</span>
</a>
<div class="nav-group" id="propertiMenu">
<div class="nav-item nav-parent" onclick="toggleMenu('propertiMenu')">
<i class="fas fa-house"></i>
@ -717,7 +723,7 @@ class="nav-item {{ request()->routeIs('admin.welcome') ? 'active' : '' }}">
<a href="{{ route('admin.halaman_verifikasi') }}"
class="nav-item {{ request()->routeIs('admin.halaman_verifikasi') ? 'active' : '' }}">
<i class="fas fa-check-circle"></i>
<span>Verifikasi Data</span>
<span>Verifikasi Dokumen</span>
</a>
<a href="{{ route('admin.monitoring-pemesanan') }}"

View File

@ -302,6 +302,26 @@
.step-desc { font-size: 0.88rem; color: #475569; margin-bottom: 3px; line-height: 1.4; background: #f8fafc; padding: 8px 12px; border-radius: 8px; border: 1px solid #e2e8f0; }
.step-date { font-size: 0.78rem; color: #94a3b8; margin-top: 4px; }
/* BUTTON INVOICE */
.btn-invoice{
display:inline-flex;
align-items:center;
gap:6px;
margin-top:8px;
padding:6px 12px;
background:#1E3A5F;
color:#fff;
text-decoration:none;
border-radius:6px;
font-size:13px;
font-weight:600;
transition:.2s;
}
.btn-invoice:hover{
background:#7AB2D3;
}
/* Document Lists */
.doc-list { display: flex; flex-direction: column; gap: 10px; }
.doc-item { display: flex; align-items: center; justify-content: space-between; padding: 12px; background: #f8fafc; border-radius: 10px; border: 1px solid #e2e8f0; transition: 0.2s; }
@ -613,11 +633,6 @@ class="profile-avatar"
'desc' => 'Dokumen diverifikasi admin'
],
[
'title' => 'Proses Bank',
'desc' => 'Pelanggan sedang mengurus pengajuan KPR ke bank'
],
[
'title' => 'KPR Disetujui Bank',
'desc' => 'Pelanggan telah mendapat persetujuan dari bank'
@ -818,20 +833,27 @@ class="profile-avatar"
<!-- DESKRIPSI -->
<div class="step-desc">
@if(
$index == $currentIndex &&
$pemesanan->catatan_admin
)
{{ $pemesanan->catatan_admin }}
@else
{{ $step['desc'] }}
@endif
{{-- Tombol Invoice --}}
@if($step['title'] == 'Pelunasan Pembayaran')
<div style="margin-top:10px;">
<a href="{{ route('invoice', $pemesanan->transaksi->id_transaksi) }}"
class="btn-invoice">
<i class="fas fa-file-invoice"></i>
Lihat Invoice
</a>
</div>
@endif
</div>
<!-- TANGGAL / STATUS -->
@ -1106,7 +1128,6 @@ class="doc-btn">
<!-- Action -->
<div class="doc-actions">
<!-- Lihat -->
<a href="{{ asset('storage/' . $dokumen->path_file) }}"
target="_blank"
@ -1124,9 +1145,7 @@ class="doc-btn">
<i class="fas fa-download"></i>
Unduh
</a>
</div>
</div>
@empty
@ -1146,7 +1165,6 @@ class="doc-btn">
</div>
<div class="doc-actions">
<button class="doc-btn"
style="opacity:0.5; cursor:not-allowed;"
disabled>
@ -1154,17 +1172,11 @@ class="doc-btn">
<i class="fas fa-clock"></i>
Menunggu
</button>
</div>
</div>
@endforelse
</div>
</div>
</div>
</main>
<script>

View File

@ -1246,7 +1246,7 @@ class="form-control"
<div class="payment-detail-row">
<span class="payment-detail-label">Bank</span>
<span class="payment-detail-value">
Bank BCA
Bank Mandiri
</span>
</div>

View File

@ -1104,7 +1104,11 @@ class="action-btn btn-view">
</a>
@endauth
<button class="action-btn btn-contact">Hubungi</button>
<button
class="action-btn btn-contact"
onclick="window.location.href='{{ route('halaman-kontak') }}'">
Hubungi
</button>
</div>
</div>
</div>

View File

@ -779,13 +779,6 @@ class="profile-avatar-img">
<span class="info-label">Alamat</span>
<textarea name="alamat" class="form-input">{{ $user->alamat }}</textarea>
</div>
<div class="info-item">
<span class="info-label">Pekerjaan</span>
<input type="text" name="pekerjaan"
value="{{ $user->pekerjaan }}" class="form-input">
</div>
</div>
</div>

View File

@ -763,7 +763,7 @@
<div class="rekening-box">
<span id="nomorRekening">
1234567890
1430033363555
</span>
<button
@ -989,7 +989,7 @@ class="btn btn-primary">
</div>
<div class="action-buttons">
<a href="{{ route('halaman-notifikasi') }}"
<a href="{{ route('detail-pemesanan', $transaksi->pemesanan->id_pemesanan) }}"
class="btn btn-outline">
<i class="fas fa-arrow-left"></i>
Kembali

View File

@ -405,7 +405,7 @@
<p class="form-subtitle">Daftar sekarang untuk mengakses semua fitur layanan kami</p>
</div>
<form method="POST" action="{{ route('register.proses') }}">
<form id="registerForm" method="POST" action="{{ route('register.proses') }}">
@csrf
<div class="form-group">
@ -416,6 +416,7 @@
</span>
<input type="text"
name="nama_user"
id="fullName"
class="form-control"
placeholder="Masukkan nama lengkap Anda"
required>
@ -430,6 +431,7 @@ class="form-control"
</span>
<input type="email"
name="email_user"
id="email"
class="form-control"
placeholder="Masukkan email Anda"
required>
@ -444,6 +446,7 @@ class="form-control"
</span>
<input type="text"
name="no_hp"
id="phone"
class="form-control"
placeholder="Contoh: 081234567890"
required>
@ -499,6 +502,11 @@ class="form-control password-input"
</div>
</div>
<small id="passwordError"
style="color:red; display:none;">
Password tidak sama.
</small>
<script>
// Toggle password visibility
function setupPasswordToggle(toggleId, passwordId) {
@ -524,7 +532,6 @@ function setupPasswordToggle(toggleId, passwordId) {
// Form submission
document.getElementById('registerForm').addEventListener('submit', function(e) {
e.preventDefault();
const fullName = document.getElementById('fullName').value;
const email = document.getElementById('email').value;
@ -552,7 +559,7 @@ function setupPasswordToggle(toggleId, passwordId) {
console.log('Register attempt:', { fullName, email, phone, password });
alert('Pendaftaran berhasil! Silakan login dengan akun Anda.');
window.location.href = 'login.html';
window.location.href = "{{ route('login') }}";
});
// Add subtle animation on page load
@ -567,6 +574,28 @@ function setupPasswordToggle(toggleId, passwordId) {
registerContainer.style.transform = 'translateY(0)';
}, 100);
});
document.getElementById("registerForm").addEventListener("submit", function(e){
if(password.value !== confirmPassword.value){
e.preventDefault();
error.style.display = "block";
confirmPassword.focus();
}
});
const password = document.getElementById("password");
const confirmPassword = document.getElementById("confirmPassword");
const error = document.getElementById("passwordError");
confirmPassword.addEventListener("input", function () {
if (password.value !== confirmPassword.value) {
error.style.display = "block";
} else {
error.style.display = "none";
}
});
</script>
</body>
</html>

View File

@ -301,6 +301,8 @@
// [TransaksiController::class, 'storePembayaranLunas']
// )->name('pembayaran.lunas.store');
// YANG LAMA INI
Route::get(
'/pembayaran-lunas/berhasil/{id}',
function ($id) {