diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php index 3e336d4..1ec7f7c 100644 --- a/app/Http/Controllers/ItemController.php +++ b/app/Http/Controllers/ItemController.php @@ -42,7 +42,7 @@ class ItemController extends Controller */ public function show(int $id) { - $item = Item::with('produk.foto','nampan')->findOrFail($id); + $item = Item::with('produk.foto','nampan','itemTransaksi.transaksi')->findOrFail($id); return response()->json($item); } diff --git a/app/Models/Item.php b/app/Models/Item.php index 337cf8a..e17e9b6 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -35,6 +35,6 @@ class Item extends Model public function itemTransaksi() { - return $this->hasMany(ItemTransaksi::class, 'id_item'); + return $this->hasOne(ItemTransaksi::class, 'id_item'); } } diff --git a/app/Models/Transaksi.php b/app/Models/Transaksi.php index 8473e76..31af4ef 100644 --- a/app/Models/Transaksi.php +++ b/app/Models/Transaksi.php @@ -13,6 +13,7 @@ class Transaksi extends Model 'id_kasir', 'id_sales', 'nama_sales', + 'nama_pembeli', 'no_hp', 'alamat', 'ongkos_bikin', diff --git a/database/factories/TransaksiFactory.php b/database/factories/TransaksiFactory.php index fd39c40..81b6cfb 100644 --- a/database/factories/TransaksiFactory.php +++ b/database/factories/TransaksiFactory.php @@ -26,6 +26,7 @@ class TransaksiFactory extends Factory 'id_kasir' => $kasir?->id, 'id_sales' => $sales?->id, 'nama_sales' => $sales?->nama ?? $this->faker->name(), + 'nama_pembeli' => $sales?->nama ?? $this->faker->name(), 'no_hp' => $this->faker->phoneNumber(), 'alamat' => $this->faker->address(), 'ongkos_bikin' => $this->faker->randomFloat(2, 0, 1000000), diff --git a/database/migrations/2025_08_26_031030_create_transaksis_table.php b/database/migrations/2025_08_26_031030_create_transaksis_table.php index 8b6a5dc..16bbe6f 100644 --- a/database/migrations/2025_08_26_031030_create_transaksis_table.php +++ b/database/migrations/2025_08_26_031030_create_transaksis_table.php @@ -16,6 +16,7 @@ return new class extends Migration $table->foreignId('id_kasir')->constrained('users'); $table->foreignId('id_sales')->nullable()->constrained('sales'); $table->string('nama_sales', 100); + $table->string('nama_pembeli', 100); $table->string('no_hp', 20); $table->string('alamat', 100); $table->double('ongkos_bikin')->nullable(); diff --git a/resources/js/components/Footer.vue b/resources/js/components/Footer.vue index 8a6d9ba..a612261 100644 --- a/resources/js/components/Footer.vue +++ b/resources/js/components/Footer.vue @@ -1,17 +1,17 @@ - - + // harga deal + item.value.harga_deal = hargaJual.value + pesanan.value.push(item.value) + + // Reset input fields + kodeItem.value = '' + hargaJual.value = null + item.value = null + info.value = '' + clearTimeout(infoTimeout) +} + +const konfirmasiPenjualan = () => { + if (pesanan.value.length === 0) { + error.value = 'Belum ada item yang dipesan.' + clearTimeout(errorTimeout) + errorTimeout = setTimeout(() => { + error.value = '' + }, 3000) + return + } + + // Todo: Implementasi konfirmasi penjualan + alert('Penjualan dikonfirmasi! (Implementasi lebih lanjut diperlukan)') +} + +const total = computed(() => { + let sum = 0; + pesanan.value.forEach(item => { + sum += item.harga_deal; + }); + return sum; +}) + diff --git a/resources/js/components/KasirTransaksiList.vue b/resources/js/components/KasirTransaksiList.vue index 012b413..5944287 100644 --- a/resources/js/components/KasirTransaksiList.vue +++ b/resources/js/components/KasirTransaksiList.vue @@ -1,42 +1,35 @@ +

Transaksi

+ + + + + + + + + + + + + + + + + +
TanggalKode TransaksiPendapatanDetail Item
{{ trx.tanggal }}{{ trx.kode }}Rp{{ (trx.pendapatan || 0).toLocaleString() }} + +
+ - +defineEmits(['detail']) + diff --git a/resources/js/components/Modal.vue b/resources/js/components/Modal.vue index de1fa83..9162425 100644 --- a/resources/js/components/Modal.vue +++ b/resources/js/components/Modal.vue @@ -73,7 +73,7 @@ onBeforeUnmount(() => { }) -