84 lines
2.6 KiB
PHP
84 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\OngkirKota;
|
|
use Illuminate\Http\Request;
|
|
|
|
class OngkirKotaController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$kotas = OngkirKota::orderBy('nama_kota')->get();
|
|
return view('admin.ongkir-kota.index', compact('kotas'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
return view('admin.ongkir-kota.create');
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'kotas.*.nama_kota' => 'required|string|max:255|unique:ongkir_kota,nama_kota',
|
|
'kotas.*.biaya_ongkir' => 'required|numeric|min:0',
|
|
], [
|
|
'kotas.*.nama_kota.required' => 'Nama kota harus diisi',
|
|
'kotas.*.nama_kota.unique' => 'Nama kota sudah ada',
|
|
'kotas.*.biaya_ongkir.required' => 'Biaya ongkir harus diisi',
|
|
'kotas.*.biaya_ongkir.numeric' => 'Biaya ongkir harus berupa angka',
|
|
'kotas.*.biaya_ongkir.min' => 'Biaya ongkir minimal 0',
|
|
]);
|
|
|
|
try {
|
|
foreach ($request->kotas as $kota) {
|
|
OngkirKota::create([
|
|
'nama_kota' => $kota['nama_kota'],
|
|
'biaya_ongkir' => $kota['biaya_ongkir'],
|
|
'status' => true
|
|
]);
|
|
}
|
|
|
|
return redirect()->route('admin.ongkir-kota.index')
|
|
->with('success', 'Data ongkir kota berhasil ditambahkan');
|
|
} catch (\Exception $e) {
|
|
return back()->with('error', 'Terjadi kesalahan: ' . $e->getMessage())
|
|
->withInput();
|
|
}
|
|
}
|
|
|
|
public function edit($id)
|
|
{
|
|
$kota = OngkirKota::findOrFail($id);
|
|
return view('admin.ongkir-kota.edit', compact('kota'));
|
|
}
|
|
|
|
public function update(Request $request, $id)
|
|
{
|
|
$kota = OngkirKota::findOrFail($id);
|
|
|
|
$request->validate([
|
|
'nama_kota' => 'required|string|max:255|unique:ongkir_kota,nama_kota,' . $id,
|
|
'biaya_ongkir' => 'required|numeric|min:0',
|
|
]);
|
|
|
|
$kota->update([
|
|
'nama_kota' => $request->nama_kota,
|
|
'biaya_ongkir' => $request->biaya_ongkir,
|
|
'status' => $request->has('status')
|
|
]);
|
|
|
|
return redirect()->route('admin.ongkir-kota.index')
|
|
->with('success', 'Data ongkir kota berhasil diperbarui');
|
|
}
|
|
|
|
public function destroy($id)
|
|
{
|
|
$kota = OngkirKota::findOrFail($id);
|
|
$kota->delete();
|
|
|
|
return redirect()->route('admin.ongkir-kota.index')
|
|
->with('success', 'Data ongkir kota berhasil dihapus');
|
|
}
|
|
}
|