From 188303be93368407e47c46a234f8905e58aee788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anna-Sara=20S=C3=A9lea?= Date: Mon, 5 May 2025 18:31:38 +0200 Subject: [PATCH] Deposit model, controller, migration --- app/Http/Controllers/DepositController.php | 90 +++++++++++++++++++ app/Models/Deposit.php | 18 ++++ ...025_05_04_110314_create_deposits_table.php | 29 ++++++ 3 files changed, 137 insertions(+) create mode 100644 app/Http/Controllers/DepositController.php create mode 100644 app/Models/Deposit.php create mode 100644 database/migrations/2025_05_04_110314_create_deposits_table.php diff --git a/app/Http/Controllers/DepositController.php b/app/Http/Controllers/DepositController.php new file mode 100644 index 0000000..732bec7 --- /dev/null +++ b/app/Http/Controllers/DepositController.php @@ -0,0 +1,90 @@ +toJson(); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request, $id) + { + $request->validate([ + 'deposit' => 'required', + ]); + + Deposit::create([ + 'customer_id' => $id, + 'amount' => $request->deposit, + ]); + + $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); + } + + /** + * Display the specified resource. + */ + public function show(Purchase $purchase) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(Purchase $purchase) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, Purchase $purchase) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + $deposit = Deposit::findOrFail( $id ); + $customer = Customer::where('id', $deposit->customer_id); + $customer->amount_left = $customer->amount_left + $deposit->amount; + $customer->amount_used = $customer->amount_used - $deposit->amount; + $customer->save(); + $deposit->delete(); + + return response()->json([ + 'success' => true, 'message' => 'Deposit deleted successfully' + ]); + } +} diff --git a/app/Models/Deposit.php b/app/Models/Deposit.php new file mode 100644 index 0000000..3eebb62 --- /dev/null +++ b/app/Models/Deposit.php @@ -0,0 +1,18 @@ + + */ + protected $fillable = [ + 'customer_id', + 'amount', + ]; +} diff --git a/database/migrations/2025_05_04_110314_create_deposits_table.php b/database/migrations/2025_05_04_110314_create_deposits_table.php new file mode 100644 index 0000000..6c6c66a --- /dev/null +++ b/database/migrations/2025_05_04_110314_create_deposits_table.php @@ -0,0 +1,29 @@ +id(); + $table->integer('customer_id')->nullable(); + $table->integer('amount')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('deposits'); + } +};