83 lines
2.7 KiB
PHP
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.');
|
|
}
|
|
}
|