diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php new file mode 100644 index 0000000..d1379af --- /dev/null +++ b/app/Http/Controllers/CustomerController.php @@ -0,0 +1,97 @@ +get(); + return Inertia::render('Dashboard', ['customers' => $customers]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + $request->validate([ + 'name' => 'required', + 'guardian_name' => 'required', + 'give_leftover' => 'nullable', + ]); + + Customer::create([ + 'name' => $request->name, + 'guardian_name' => $request->guardian_name, + 'give_leftover' => $request->give_leftover, + ]); + + return redirect(route('thankyou', absolute: false)); + } + + /** + * Display the specified resource. + */ + public function show($id) + { + $customer = Customer::with('purchases')->findOrFail($id); + + return Inertia::render('Customer', ['customer' => $customer]); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Customers $customers) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function updateDeposit(Request $request, $id) + { + $request->validate([ + 'deposit' => 'required', + ]); + + $customer = Customer::findOrFail($id); + + $customer->deposit = $customer->deposit + $request->deposit; + $customer->amount_left = $customer->amount_left + $request->deposit; + $customer->save(); + + return redirect('customer/' . $customer->id); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + $customer = Customer::findOrFail( $id ); + $customer->delete(); + + return response()->json([ + 'success' => true, 'message' => 'Customer deleted successfully' + ]); + } +} diff --git a/app/Models/Customer.php b/app/Models/Customer.php new file mode 100644 index 0000000..ca36030 --- /dev/null +++ b/app/Models/Customer.php @@ -0,0 +1,31 @@ + + */ + protected $fillable = [ + 'name', + 'guardian_name', + 'deposit', + 'amount left', + 'amount used', + 'give_leftover', + ]; + + /** + * Get the purchases for the customer. + */ + public function purchases() + { + return $this->hasMany(Purchase::class); + } +} diff --git a/database/migrations/2025_04_19_184954_create_customers_table.php b/database/migrations/2025_04_19_184954_create_customers_table.php new file mode 100644 index 0000000..1fe5d36 --- /dev/null +++ b/database/migrations/2025_04_19_184954_create_customers_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name'); + $table->string('guardian_name'); + $table->integer('deposit')->nullable(); + $table->integer('amount_left')->nullable(); + $table->boolean('give_leftover')->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('customers'); + } +};