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/Http/Controllers/SalesController.php b/app/Http/Controllers/SalesController.php index 4538532..0e4c5f9 100644 --- a/app/Http/Controllers/SalesController.php +++ b/app/Http/Controllers/SalesController.php @@ -82,7 +82,9 @@ class SalesController extends Controller */ public function destroy(int $id) { - Sales::findOrFail($id)->delete(); + $sales = Sales::findOrFail($id); + $sales->transaksi()->update(['id_sales' => null]); + $sales->delete(); return response()->json([ 'message' => 'Sales berhasil dihapus' ], 200); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 72d7110..58a24b8 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -19,9 +19,9 @@ class UserController extends Controller public function store(Request $request) { $request->validate([ - 'nama' => 'required|nama|unique:users', + 'nama' => 'required|string|unique:users', 'password' => 'required|min:6', - 'role' => 'required|in:owner, kasir', + 'role' => 'required|in:owner,kasir', ]); User::create([ 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/css/app.css b/resources/css/app.css index d8820d0..a7cc5fc 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -1,3 +1,4 @@ +@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css'); @import 'tailwindcss'; @source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php'; @@ -22,4 +23,16 @@ --color-B: #AFE5FF; --color-C: #77C7EE; --color-D: #024768; +} + +@keyframes shake { + 0%, 100% { + transform: translateX(0); + } + 10%, 30%, 50%, 70%, 90% { + transform: translateX(-5px); + } + 20%, 40%, 60%, 80% { + transform: translateX(5px); + } } \ No newline at end of file diff --git a/resources/js/components/CreateAkun.vue b/resources/js/components/CreateAkun.vue new file mode 100644 index 0000000..9c50474 --- /dev/null +++ b/resources/js/components/CreateAkun.vue @@ -0,0 +1,103 @@ + + + diff --git a/resources/js/components/CreateKategori.vue b/resources/js/components/CreateKategori.vue index 870bc1a..441a3d2 100644 --- a/resources/js/components/CreateKategori.vue +++ b/resources/js/components/CreateKategori.vue @@ -1,5 +1,6 @@