<?php
namespace App\Http\Controllers;
use App\Models\Log;
use App\Models\Pelanggan;
use App\Models\ReferralPelanggan;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ReferralPelangganController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
$pelanggan = Pelanggan::with('riwayat_poin_pelanggans','referral_pelanggans.referrables')->findOrFail(request()->pelanggan_id);
$datas = ReferralPelanggan::withCount('referrables')->where('pelanggan_id',request()->pelanggan_id)->paginate(10);
return view('pelanggan.referral.index',compact('datas','pelanggan'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
$pelanggan = Pelanggan::findOrFail(request()->pelanggan_id);
return view('pelanggan.referral.create',compact('pelanggan'));
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
$request->validate([
'code' => 'required|string|max:255|unique:referral_pelanggans',
'name' => 'required|string|max:255',
'description' => 'nullable|string',
'type'=>'required',
'value'=>'required',
'status'=>'required'
]);
DB::beginTransaction();
try {
$data = ReferralPelanggan::create([
'pelanggan_id' => $request->pelanggan_id,
'code' => $request->code,
'name' => $request->name,
'description' => $request->description,
'type' => $request->type,
'value' => $request->value,
'status' => $request->status,
]);
DB::commit();
return redirect()->route('pelanggan.referral.index',['pelanggan_id'=>request()->pelanggan_id])->with('success', 'Data berhasil disimpan');
//code...
} catch (\Throwable $th) {
DB::rollBack();
Log::error($th);
return redirect()->back()->withInput($request->all())->with('success', 'Data gagal disimpan');
}
}
/**
* Display the specified resource.
*/
public function show($id)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit($id)
{
$pelanggan = Pelanggan::findOrFail(request()->pelanggan_id);
$data = ReferralPelanggan::findOrFail($id);
return view('pelanggan.referral.edit',[
'data'=>$data,
'pelanggan'=>$pelanggan
]);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, $id)
{
$data = ReferralPelanggan::findOrFail($id);
$request->validate([
'code' => 'required|string|max:255|unique:referral_pelanggans,code,'.$data->id,
'name' => 'required|string|max:255',
'description' => 'nullable|string',
'type'=>'required',
'value'=>'required',
'status'=>'required'
]);
DB::beginTransaction();
try {
$data->update([
'pelanggan_id' => $request->pelanggan_id,
'code' => $request->code,
'name' => $request->name,
'description' => $request->description,
'type' => $request->type,
'value' => $request->value,
'status' => $request->status,
]);
DB::commit();
return redirect()->route('pelanggan.referral.index',['pelanggan_id'=>request()->pelanggan_id])->with('success', 'Data berhasil disimpan');
//code...
} catch (\Throwable $th) {
DB::rollBack();
Log::error($th);
return redirect()->back()->withInput($request->all())->with('success', 'Data gagal disimpan');
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy($id)
{
DB::beginTransaction();
try {
$data = ReferralPelanggan::findOrFail($id);
$data->delete();
DB::commit();
return redirect()->route('pelanggan.referral.index',['pelanggan_id'=>request()->pelanggan_id])->with('success', 'Data berhasil dihapus');
//code...
} catch (\Throwable $th) {
DB::rollBack();
Log::error($th);
return redirect()->back()->with('success', 'Data gagal dihapus');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]