diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php
index 44d431e..7b51944 100644
--- a/app/Http/Controllers/ItemController.php
+++ b/app/Http/Controllers/ItemController.php
@@ -44,7 +44,7 @@ class ItemController extends Controller
*/
public function show(int $id)
{
- $item = Item::with('produk.foto','nampan','itemTransaksi.transaksi')->findOrFail($id);
+ $item = Item::with('produk.foto','nampan')->findOrFail($id);
return response()->json($item);
}
@@ -83,7 +83,7 @@ class ItemController extends Controller
// custom methods
public function brankasItem(){
- $items = Item::with('produk.foto','nampan')->whereNull('id_nampan')->belumTerjual()->get();
+ $items = Item::with('produk.foto','nampan')->whereNull('id_nampan')->get();
return response()->json($items);
}
diff --git a/app/Http/Controllers/TransaksiController.php b/app/Http/Controllers/TransaksiController.php
index 11e47e2..0b58655 100644
--- a/app/Http/Controllers/TransaksiController.php
+++ b/app/Http/Controllers/TransaksiController.php
@@ -80,19 +80,16 @@ class TransaksiController extends Controller
// if (!$item) {
// throw new \Exception("Item dengan kode_item {$it['kode_item']} tidak ditemukan.");
// }
- $item = Item::find($it['kode_item']);
+ $item = Item::find($it['kode_item'])->with('produk')->first();
ItemTransaksi::create([
'id_transaksi' => $transaksi->id,
- 'id_item' => $item->id,
+ 'id_produk' => $item->produk->id,
'harga_deal' => $it['harga_deal'],
'posisi_asal' => $item->nampan ? 'Nampan ' . $item->nampan->nama : 'Brankas',
]);
- $item->update([
- 'is_sold' => true,
- 'id_nampan' => null,
- ]);
+ $item->delete();
}
DB::commit();
diff --git a/app/Models/Item.php b/app/Models/Item.php
index ab88fe7..7fcec9e 100644
--- a/app/Models/Item.php
+++ b/app/Models/Item.php
@@ -13,8 +13,7 @@ class Item extends Model
protected $fillable = [
'id_produk',
'id_nampan',
- 'is_sold',
- 'kode_item', // ✅ ditambahkan agar bisa diisi otomatis
+ 'kode_item',
];
protected $hidden = ['created_at', 'updated_at', 'deleted_at'];
@@ -50,18 +49,8 @@ class Item extends Model
return $this->belongsTo(Produk::class, 'id_produk');
}
- public function scopeBelumTerjual($query)
- {
- return $query->where('is_sold', false);
- }
-
public function nampan()
{
return $this->belongsTo(Nampan::class, 'id_nampan');
}
-
- public function itemTransaksi()
- {
- return $this->hasOne(ItemTransaksi::class, 'id_item');
- }
}
diff --git a/app/Models/ItemTransaksi.php b/app/Models/ItemTransaksi.php
index b596de9..cf438ec 100644
--- a/app/Models/ItemTransaksi.php
+++ b/app/Models/ItemTransaksi.php
@@ -12,7 +12,7 @@ class ItemTransaksi extends Model
protected $fillable = [
'id_transaksi',
- 'id_item',
+ 'id_produk',
'harga_deal',
'posisi_asal'
];
@@ -24,8 +24,8 @@ class ItemTransaksi extends Model
return $this->belongsTo(Transaksi::class, 'id_transaksi');
}
- public function item()
+ public function produk()
{
- return $this->belongsTo(Item::class, 'id_item');
+ return $this->belongsTo(Produk::class, 'id_produk');
}
}
diff --git a/database/factories/ItemFactory.php b/database/factories/ItemFactory.php
index e260ab3..07b76b4 100644
--- a/database/factories/ItemFactory.php
+++ b/database/factories/ItemFactory.php
@@ -19,7 +19,6 @@ class ItemFactory extends Factory
return [
'id_produk' => \App\Models\Produk::factory(),
'id_nampan' => null,
- 'is_sold' => false,
];
}
}
diff --git a/database/factories/ItemTransaksiFactory.php b/database/factories/ItemTransaksiFactory.php
index 282ef86..2b2143e 100644
--- a/database/factories/ItemTransaksiFactory.php
+++ b/database/factories/ItemTransaksiFactory.php
@@ -3,6 +3,7 @@
namespace Database\Factories;
use App\Models\Item;
+use App\Models\Produk;
use App\Models\Transaksi;
use Illuminate\Database\Eloquent\Factories\Factory;
@@ -20,7 +21,7 @@ class ItemTransaksiFactory extends Factory
{
return [
'id_transaksi' => Transaksi::factory(),
- 'id_item' => Item::factory(),
+ 'id_produk' => Produk::factory(),
'harga_deal' => $this->faker->randomFloat(2, 100000, 5000000),
'created_at' => now(),
];
diff --git a/database/migrations/2025_08_25_071541_create_items_table.php b/database/migrations/2025_08_25_071541_create_items_table.php
index 3cb4ced..53e017d 100644
--- a/database/migrations/2025_08_25_071541_create_items_table.php
+++ b/database/migrations/2025_08_25_071541_create_items_table.php
@@ -15,7 +15,6 @@ return new class extends Migration
$table->id();
$table->foreignId('id_produk')->constrained('produks')->cascadeOnDelete();
$table->foreignId('id_nampan')->nullable()->constrained('nampans');
- $table->boolean('is_sold')->default(false);
$table->timestamps();
});
}
diff --git a/database/migrations/2025_08_26_031033_create_item_transaksis_table.php b/database/migrations/2025_08_26_031033_create_item_transaksis_table.php
index 929e80b..47d3748 100644
--- a/database/migrations/2025_08_26_031033_create_item_transaksis_table.php
+++ b/database/migrations/2025_08_26_031033_create_item_transaksis_table.php
@@ -14,7 +14,7 @@ return new class extends Migration
Schema::create('item_transaksis', function (Blueprint $table) {
$table->id();
$table->foreignId('id_transaksi')->constrained('transaksis')->onDelete('cascade');
- $table->foreignId('id_item')->constrained('items');
+ $table->foreignId('id_produk')->constrained('produks');
$table->double('harga_deal');
$table->string('posisi_asal', 100);
$table->timestamps();
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index b61ac74..4a8163f 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -64,7 +64,6 @@ class DatabaseSeeder extends Seeder
$jumlah_item = rand(1, 20);
Item::factory($jumlah_item)->create([
'id_produk' => $produk->id,
- 'is_sold' => false,
]);
});
@@ -84,19 +83,16 @@ class DatabaseSeeder extends Seeder
Transaksi::factory(40)->create()->each(function ($transaksi) {
$jumlah_item = rand(1, 2);
- $items = Item::where('is_sold', false)->inRandomOrder()->limit($jumlah_item)->get();
+ $items = Item::with('produk')->inRandomOrder()->limit($jumlah_item)->get();
if ($items->isEmpty()) return;
$total_harga = $transaksi->total_harga;
foreach ($items as $item) {
$transaksi->itemTransaksi()->create([
- 'id_item' => $item->id,
+ 'id_produk' => $item->produk->id,
'harga_deal' => $item->produk->harga_jual,
'posisi_asal' => $item->id_nampan ? 'Nampan ' . $item->nampan->nama : 'Brankas',
]);
- $item->update([
- 'id_nampan' => null,
- 'is_sold' => true,
- ]);
+ $item->delete();
$total_harga += $item->produk->harga_jual;
}
$transaksi->update(['total_harga' => $total_harga]);
diff --git a/resources/js/components/KasirForm.vue b/resources/js/components/KasirForm.vue
index f29cc6a..aa97730 100644
--- a/resources/js/components/KasirForm.vue
+++ b/resources/js/components/KasirForm.vue
@@ -3,7 +3,7 @@
message="Yakin ingin menghapus item ini?" @confirm="hapusPesanan" @cancel="closeDeleteModal" />
-