rsabhk_hsr/app/Http/Controllers/AsuransiController.php
hasrinuryawati ced9b41539 transaksi
2025-04-27 20:02:22 +07:00

83 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Asuransi;
use App\Models\AsuransiTindakan;
use App\Models\Tindakan;
use Illuminate\Http\Request;
class AsuransiController extends Controller
{
public function index()
{
$asuransi = Asuransi::orderByDesc('id')->get();
return view('module.asuransi.index', compact('asuransi'));
}
public function store(Request $request)
{
$asuransi = new Asuransi();
$asuransi->nama = $request->nama;
$asuransi->created_by = auth('pegawai')->user()->nama;
$asuransi->save();
return redirect()->back()->with('message','Berhasil menambah data');
}
public function update(Request $request, Asuransi $asuransi)
{
$asuransi = Asuransi::find($asuransi->id);
$asuransi->nama = $request->nama;
$asuransi->updated_by = auth('pegawai')->user()->nama;
$asuransi->save();
return redirect()->back()->with('message','Data berhasil di ubah');
}
public function maappingForm(Asuransi $asuransi)
{
$dataAsuransi = Asuransi::find($asuransi->id);
$tindakan = Tindakan::get();
$tindakanMapping = AsuransiTindakan::where('id_asuransi', $dataAsuransi->id)
->get()
->keyBy('id_tindakan');
return view('module.asuransi.mapping_tindakan', compact(['dataAsuransi', 'tindakan', 'tindakanMapping']));
}
public function mapping(Request $request)
{
$request->validate([
'id_asuransi' => 'required|exists:asuransi,id',
'tindakan' => 'required|array',
]);
$idAsuransi = $request->id_asuransi;
$dataTindakan = $request->tindakan;
foreach ($dataTindakan as $idTindakan => $data) {
if (isset($data['selected']) && $data['selected']) {
$existing = AsuransiTindakan::where('id_asuransi', $idAsuransi)
->where('id_tindakan', $idTindakan)
->first();
if ($existing) {
continue;
}
$asuransiTindakan = new AsuransiTindakan();
$asuransiTindakan->id_asuransi = $idAsuransi;
$asuransiTindakan->id_tindakan = $idTindakan;
$asuransiTindakan->cover_type = $data['cover_type'] ?? 'none';
$asuransiTindakan->cover_percentage = $data['cover_percentage'] ?? null;
$asuransiTindakan->created_by = auth('pegawai')->user()->nama ?? 'system';
$asuransiTindakan->save();
}
}
return redirect()->back()->with('success', 'Mapping berhasil disimpan.');
}
}