Kasir/app/Http/Controllers/SalesController.php
2025-09-02 10:42:01 +07:00

93 lines
2.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Sales;
use Illuminate\Http\Request;
class SalesController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
return response()->json(
Sales::withCount('transaksi')->get()
);
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'nama' => 'required|string|max:80',
'no_hp' => 'required|string|max:20',
'alamat' => 'required|string|max:80',
]);
Sales::create([
'nama' => $request->nama,
'no_hp' => $request->no_hp,
'alamat' => $request->alamat,
]);
return response()->json([
'message' => 'Sales berhasil dibuat'
],201);
}
/**
* Display the specified resource.
*/
public function show(int $id)
{
return response()->json(
Sales::with('transaksi')->find($id)
);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, int $id)
{
$request->validate([
'nama' => 'required|string|max:80',
'no_hp' => 'required|string|max:20',
'alamat' => 'required|string|max:80',
]);
$sales = Sales::find($id);
if (!$sales) {
return response()->json(['message' => 'Sales not found'], 404);
}
$sales->update([
'nama' => $request->nama,
'no_hp' => $request->no_hp,
'alamat' => $request->alamat,
]);
return response()->json([
'message' => 'Sales berhasil diupdate'
],200);
}
/**
* Remove the specified resource from storage.
*/
public function destroy(int $id)
{
$sales = Sales::findOrFail($id);
$sales->transaksi()->update(['id_sales' => null]);
$sales->delete();
return response()->json([
'message' => 'Sales berhasil dihapus'
], 200);
}
}