From d48ec1a1fd9818eee871d84be39b9a436b7bae96 Mon Sep 17 00:00:00 2001 From: dhilanradya Date: Mon, 20 Oct 2025 16:50:26 +0700 Subject: [PATCH] [Update] Fix kode item error --- app/Http/Controllers/TransaksiController.php | 2 +- app/Models/Item.php | 23 ++++++------------- ...09_145624_add_kode_item_to_items_table.php | 4 ++-- resources/js/components/KasirForm.vue | 4 +++- 4 files changed, 13 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/TransaksiController.php b/app/Http/Controllers/TransaksiController.php index 22d3afe..57e311f 100644 --- a/app/Http/Controllers/TransaksiController.php +++ b/app/Http/Controllers/TransaksiController.php @@ -104,7 +104,7 @@ class TransaksiController extends Controller 'ongkos_bikin' => 'nullable|numeric|min:0', 'total_harga' => 'required|numeric', 'items' => 'required|array', - 'items.*.kode_item' => 'required|exists:items,id|numeric', + 'items.*.kode_item' => 'required', 'items.*.harga_deal' => 'required|numeric', ]); diff --git a/app/Models/Item.php b/app/Models/Item.php index 1fdd3b6..5e94b2a 100644 --- a/app/Models/Item.php +++ b/app/Models/Item.php @@ -23,24 +23,15 @@ class Item extends Model { parent::boot(); - static::creating(function ($item) { - $prefix = 'TMJC'; - $date = now()->format('Ymd'); + static::created(function ($item) { + if (!$item->kode_item || $item->kode_item === 'belum pak') { + $prefix = "TMJC"; + $date = $item->created_at->format('Ymd'); + $number = str_pad($item->id, 4, '0', STR_PAD_LEFT); - // Cari item terakhir yg dibuat hari ini - $lastItem = self::whereDate('created_at', now()->toDateString()) - ->orderBy('id', 'desc') - ->first(); - - $number = 1; - if ($lastItem && $lastItem->kode_item) { - // Ambil 4 digit terakhir dari kode_item - $lastNumber = intval(substr($lastItem->kode_item, -4)); - $number = $lastNumber + 1; + $item->kode_item = $prefix . $date . $number; + $item->save(); } - - // Format: ITM202509090001 - $item->kode_item = $prefix . $date . str_pad($number, 4, '0', STR_PAD_LEFT); }); } diff --git a/database/migrations/2025_09_09_145624_add_kode_item_to_items_table.php b/database/migrations/2025_09_09_145624_add_kode_item_to_items_table.php index 049b76b..f129bb7 100644 --- a/database/migrations/2025_09_09_145624_add_kode_item_to_items_table.php +++ b/database/migrations/2025_09_09_145624_add_kode_item_to_items_table.php @@ -12,10 +12,10 @@ return new class extends Migration public function up() { Schema::table('items', function (Blueprint $table) { - $table->string('kode_item')->unique()->after('id'); + $table->string('kode_item')->unique()->default('belum pak')->after('id'); }); } - + public function down() { Schema::table('items', function (Blueprint $table) { diff --git a/resources/js/components/KasirForm.vue b/resources/js/components/KasirForm.vue index 150a2cc..3377f9c 100644 --- a/resources/js/components/KasirForm.vue +++ b/resources/js/components/KasirForm.vue @@ -249,12 +249,14 @@ const tambahItem = () => { return; } - item.value.kode_item = Number(kodeItem.value); + item.value.kode_item = kodeItem.value; item.value.harga_deal = Number(hargaJual.value); item.value.posisi = item.value.nampan ? item.value.nampan.nama : "Brankas"; pesanan.value.push(item.value); + console.log("Pesanan +:", item.value); + kodeItem.value = ""; hargaJual.value = null; hargaJualFormatted.value = "";