TIF_NGANJUK_E41220418/database/seeders/TransaksiSeeder.php

216 lines
9.7 KiB
PHP
Executable File

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
use Illuminate\Support\Facades\Schema; // Tambahkan ini di atas
class TransaksiSeeder extends Seeder
{
public function run(): void
{
// 1. Matikan pengecekan Foreign Key sementara (Supaya bisa hapus data sembarangan)
Schema::disableForeignKeyConstraints();
// 2. Kosongkan tabel sebelum diisi ulang (Urutan gak masalah karena FK dimatikan)
DB::table('detail_additionals')->truncate();
DB::table('booking_fotos')->truncate();
DB::table('transaksi_bukets')->truncate();
// 3. Nyalakan lagi pengecekan Foreign Key
Schema::enableForeignKeyConstraints();
$buketData = [
[
'no_invoice' => 'INV-BKT-' . time() . '01',
'id_pelanggan' => 1, // Pastikan ID ini ada di tabel pelanggans
'id_buket' => 1, // Buket Mawar (Harga: 150000)
'request' => 'tema navy',
'ucapan' => '"Happy Graduation Sayang"',
'tgl_ambil' => Carbon::now()->addDays(2)->format('Y-m-d H:i:s'),
'total_bayar' => 150000,
'bukti_bayar' => 'img/payment/buket/bukti1.jpg',
'status_transaksi' => 'selesai',
'created_at' => now(),
'updated_at' => now(),
],
[
'no_invoice' => 'INV-BKT-' . time() . '02',
'id_pelanggan' => 2,
'id_buket' => 2, // Snack Bouquet (Harga: 75000)
'request' => 'Snacknya jangan yang pedas',
'ucapan' => 'semangat bub',
'tgl_ambil' => Carbon::now()->subDays(1)->format('Y-m-d H:i:s'), // Sudah lewat
'total_bayar' => 75000,
'bukti_bayar' => 'img/payment/buket/bukti2.jpg',
'status_transaksi' => 'diterima',
'created_at' => now()->subDays(2),
'updated_at' => now()->subDays(1),
],
[
'no_invoice' => 'INV-BKT-' . time() . '03',
'id_pelanggan' => 2,
'id_buket' => 1, // Snack Bouquet (Harga: 75000)
'request' => 'Snacknya jangan yang pedas',
'ucapan' => 'semangat bub',
'tgl_ambil' => Carbon::now()->subDays(1)->format('Y-m-d H:i:s'), // Sudah lewat
'total_bayar' => 75000,
'bukti_bayar' => 'img/payment/buket/bukti2.jpg',
'status_transaksi' => 'ditolak',
'created_at' => now()->subDays(2),
'updated_at' => now()->subDays(1),
],
[
'no_invoice' => 'INV-BKT-' . time() . '04',
'id_pelanggan' => 2,
'id_buket' => 3, // Snack Bouquet (Harga: 75000)
'request' => 'Snacknya jangan yang pedas',
'ucapan' => 'semangat bub',
'tgl_ambil' => Carbon::now()->subDays(1)->format('Y-m-d H:i:s'), // Sudah lewat
'total_bayar' => 75000,
'bukti_bayar' => 'img/payment/buket/bukti2.jpg',
'status_transaksi' => 'menunggu_verifikasi',
'created_at' => now()->subDays(2),
'updated_at' => now()->subDays(1),
],
[
'no_invoice' => 'INV-BKT-' . time() . '05',
'id_pelanggan' => 1,
'id_buket' => 3, // Snack Bouquet (Harga: 75000)
'request' => 'Snacknya jangan yang pedas',
'ucapan' => 'semangat bub',
'tgl_ambil' => Carbon::now()->subDays(1)->format('Y-m-d H:i:s'), // Sudah lewat
'total_bayar' => 75000,
'bukti_bayar' => 'img/payment/buket/bukti2.jpg',
'status_transaksi' => 'menunggu_verifikasi',
'created_at' => now()->subDays(2),
'updated_at' => now()->subDays(1),
]
];
DB::table('transaksi_bukets')->insert($buketData);
// --- 2. SEEDER BOOKING FOTO ---
$fotoData = [
[
'id_booking' => 1, // Kita set manual ID biar gampang relasi ke additional
'no_invoice' => 'INV-FOTO-' . time() . '01',
'id_pelanggan' => 1,
'id_paket' => 1, // Wisuda Basic (Harga: 250000)
'tgl_booking' => Carbon::now()->addDays(5)->format('Y-m-d'),
'jam_mulai' => '09:00:00',
'jam_selesai' => '10:00:00', // Durasi 60 menit sesuai paket
'total_bayar' => 250000 + 10000, // Harga Paket + Additional (Bando)
'bukti_bayar' => 'img/payment/foto/bukti1.jpg',
'status_booking' => 'diterima',
'created_at' => now(),
'updated_at' => now(),
],
[
'id_booking' => 2,
'no_invoice' => 'INV-FOTO-' . time() . '02',
'id_pelanggan' => 2,
'id_paket' => 2, // Couple Studio (Harga: 350000)
'tgl_booking' => Carbon::now()->addDays(1)->format('Y-m-d'),
'jam_mulai' => '13:00:00',
'jam_selesai' => '13:45:00', // Durasi 45 menit
'total_bayar' => 350000 + (35000 * 2), // Paket + (Kostum * 2)
'bukti_bayar' => 'img/payment/foto/bukti1.jpg',
'status_booking' => 'ditolak',
'created_at' => now(),
'updated_at' => now(),
],
[
'id_booking' => 3,
'no_invoice' => 'INV-FOTO-' . time() . '03',
'id_pelanggan' => 1,
'id_paket' => 2, // Couple Studio (Harga: 350000)
'tgl_booking' => Carbon::now()->addDays(1)->format('Y-m-d'),
'jam_mulai' => '13:00:00',
'jam_selesai' => '13:45:00', // Durasi 45 menit
'total_bayar' => 350000 + (35000 * 2), // Paket + (Kostum * 2)
'bukti_bayar' => 'img/payment/foto/bukti1.jpg',
'status_booking' => 'menunggu_verifikasi',
'created_at' => now(),
'updated_at' => now(),
],
[
'id_booking' => 4,
'no_invoice' => 'INV-FOTO-' . time() . '04',
'id_pelanggan' => 2,
'id_paket' => 2, // Couple Studio (Harga: 350000)
'tgl_booking' => Carbon::now()->addDays(1)->format('Y-m-d'),
'jam_mulai' => '13:00:00',
'jam_selesai' => '13:45:00', // Durasi 45 menit
'total_bayar' => 350000 + (35000 * 2), // Paket + (Kostum * 2)
'bukti_bayar' => 'img/payment/foto/bukti1.jpg',
'status_booking' => 'menunggu_verifikasi',
'created_at' => now(),
'updated_at' => now(),
],
[
'id_booking' => 5,
'no_invoice' => 'INV-FOTO-' . time() . '05',
'id_pelanggan' => 1,
'id_paket' => 2, // Couple Studio (Harga: 350000)
'tgl_booking' => Carbon::now()->addDays(1)->format('Y-m-d'),
'jam_mulai' => '13:00:00',
'jam_selesai' => '13:45:00', // Durasi 45 menit
'total_bayar' => 350000 + (35000 * 2), // Paket + (Kostum * 2)
'bukti_bayar' => 'img/payment/foto/bukti1.jpg',
'status_booking' => 'selesai',
'created_at' => now(),
'updated_at' => now(),
]
];
DB::table('booking_fotos')->insert($fotoData);
// --- 3. SEEDER DETAIL ADDITIONAL (Relasi ke Booking Foto) ---
$additionalData = [
// SKENARIO 1: Booking ID 1 (Satu Item Additional)
[
'id_booking' => 4,
'id_additional' => 3, // Bando Kucing
'qty' => 1,
'subtotal' => 10000,
'created_at' => now(),
'updated_at' => now(),
],
[
'id_booking' => 4,
'id_additional' => 2, // Bando Kucing
'qty' => 1,
'subtotal' => 10000,
'created_at' => now(),
'updated_at' => now(),
],
// SKENARIO 2: Booking ID 3 (Dua Item Additional Berbeda)
// Item Pertama
[
'id_booking' => 3,
'id_additional' => 2, // Kostum Boneka
'qty' => 1,
'subtotal' => 35000,
'created_at' => now(),
'updated_at' => now(),
],
// Item Kedua
[
'id_booking' => 3,
'id_additional' => 3, // Bando Kucing
'qty' => 2,
'subtotal' => 20000, // 2 x 10000
'created_at' => now(),
'updated_at' => now(),
],
];
DB::table('detail_additionals')->insert($additionalData);
}
}