middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); } /** * Display a listing of the SubrogasiJamkrindos. * * @param \Modules\Writeoff\DataTables\HapusBukuDataTable $dataTable * * @return mixed */ public function index(HapusBukuDataTable $dataTable, Request $request) { if (is_null($this->user) || !$this->user->can('pencatatan.read')) { abort(403, 'Sorry !! You are Unauthorized to view any master data !'); } if ($request->rekening) { return redirect()->route('pencatatan.hapus_buku.create', ['rekening' => $request->rekening]); } else { return $dataTable->render('writeoff::pencatatan.hapus_buku.index', ['add' => false]); } } public function edit($id) { return redirect()->route('pencatatan.hapus_buku.create', ['id' => $id]); } public function store(StoreHapusBukuRequest $request) { $validated = $request->validated(); if ($validated) { try { DB::transaction(function () use ($validated) { // Prepare the data for creating a new user $data = [ 'nomor_pinjaman' => $validated['nomor_pinjaman'], 'kode_jenis_pinjaman' => $validated['kode_jenis_pinjaman'], 'kode_debitur' => $validated['kode_debitur'], 'nama_debitur' => $validated['nama_debitur'], 'alamat_debitur' => $validated['alamat_debitur'], 'npwp_debitur' => $validated['npwp_debitur'], 'kode_cabang' => $validated['kode_cabang'], 'kode_mata_uang' => $validated['kode_mata_uang'], 'tanggal_hapus_buku' => $validated['tanggal_hapus_buku'], 'nomor_fasilitas' => $validated['nomor_fasilitas'], 'kode_jenis_fasilitas' => $validated['kode_jenis_fasilitas'], 'nilai_plafond_awal' => $validated['nilai_plafond_awal'], 'suku_bunga' => $validated['suku_bunga'], 'baki_debet' => $validated['baki_debet'], 'jumlah_bunga' => $validated['jumlah_bunga'], 'jumlah_kewajiban_lain' => $validated['jumlah_kewajiban_lain'], 'total_kewajiban' => $validated['total_kewajiban'], 'bunga_intra' => $validated['bunga_intra'], 'bunga_ekstra' => $validated['bunga_ekstra'], 'bunga_non_ekstra' => $validated['bunga_non_ekstra'], 'denda' => $validated['denda'], 'tagihan_lain' => $validated['tagihan_lain'], 'biaya_lain' => $validated['biaya_lain'], 'total_all_kewajiban' => $validated['total_all_kewajiban'], 'memo_persetujuan' => $validated['memo_persetujuan'], 'lama_hari' => $validated['lama_hari'], 'proses_hukum' => $validated['proses_hukum'], 'komitmen_debitur' => $validated['komitmen_debitur'], 'keterangan' => $validated['keterangan'], 'status' => $validated['status'] ]; $data['created_by'] = auth()->user()->id; $data['created_at'] = now(); // Emit a success event with a message $approval = [ 'method' => 'create', 'menu' => 'Hapus Buku', 'new_request' => json_encode($data), 'description' => 'Create Hapus Buku', 'status' => '0', 'ref' => $validated['nomor_pinjaman'] ]; $is_approval = Approval::where('menu', 'Hapus Buku') ->where('ref', $validated['nomor_pinjaman']) ->where('status', '0') ->where('method', 'create') ->get() ->first(); if ($is_approval) { echo json_encode(['status' => 'error', 'message' => 'Data Sedang Menunggu Approval']); } else { Approval::create($approval); echo json_encode(['status' => 'success', 'message' => 'Data Berhasil Di Input, Menunggu Approval' ]); } }); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); } } } /** * Display a listing of the SubrogasiJamkrindos. * * @param \Modules\Writeoff\DataTables\HapusBukuDataTable $dataTable * * @return mixed */ public function create(HapusBukuDataTable $dataTable, Request $request) { if (is_null($this->user) || !$this->user->can('pencatatan.read')) { abort(403, 'Sorry !! You are Unauthorized to view any master data !'); } $branch = Branch::all(); $loan_type = LoanType::all(); $facility_type = FacilityType::all(); $currency = Currency::all(); $totalbayar = 0; if ($request->id) { $hapusbuku = HapusBuku::find($request->id); $totalbayar = DetailPembayaran::where('nomor_pinjaman', $hapusbuku->nomor_pinjaman) ->where('status', 1) ->sum('nominal'); $rekening = Rekening::with('loan_type', 'debitur', 'branch', 'currency') ->where('nomor_rekening', $hapusbuku->nomor_pinjaman) ->whereHas('loan_type', function ($query) { $query->whereBetween('kode', [3000, 3999]); }) ->get() ->first(); return view('writeoff::pencatatan.hapus_buku.add', compact('branch', 'loan_type', 'facility_type', 'currency', 'rekening', 'totalbayar', 'hapusbuku')); } else { $rekening = Rekening::with('loan_type', 'debitur', 'branch', 'currency') ->where('nomor_rekening', $request->rekening) ->whereDoesntHave('hapusBuku') ->whereHas('loan_type', function ($query) { $query->whereBetween('kode', [3000, 3999]); }) ->get() ->first(); return view('writeoff::pencatatan.hapus_buku.add', compact('branch', 'loan_type', 'facility_type', 'currency', 'rekening', 'totalbayar')); } } public function update(UpdateHapusBukuRequest $request, $id) { $validated = $request->validated(); if ($validated) { try { DB::transaction(function () use ($validated, $id) { // Prepare the data for creating a new user $data = [ 'nomor_pinjaman' => $validated['nomor_pinjaman'], 'kode_jenis_pinjaman' => $validated['kode_jenis_pinjaman'], 'kode_debitur' => $validated['kode_debitur'], 'nama_debitur' => $validated['nama_debitur'], 'alamat_debitur' => $validated['alamat_debitur'], 'npwp_debitur' => $validated['npwp_debitur'], 'kode_cabang' => $validated['kode_cabang'], 'kode_mata_uang' => $validated['kode_mata_uang'], 'tanggal_hapus_buku' => $validated['tanggal_hapus_buku'], 'nomor_fasilitas' => $validated['nomor_fasilitas'], 'kode_jenis_fasilitas' => $validated['kode_jenis_fasilitas'], 'nilai_plafond_awal' => $validated['nilai_plafond_awal'], 'suku_bunga' => $validated['suku_bunga'], 'baki_debet' => $validated['baki_debet'], 'jumlah_bunga' => $validated['jumlah_bunga'], 'jumlah_kewajiban_lain' => $validated['jumlah_kewajiban_lain'], 'total_kewajiban' => $validated['total_kewajiban'], 'bunga_intra' => $validated['bunga_intra'], 'bunga_ekstra' => $validated['bunga_ekstra'], 'bunga_non_ekstra' => $validated['bunga_non_ekstra'], 'denda' => $validated['denda'], 'tagihan_lain' => $validated['tagihan_lain'], 'biaya_lain' => $validated['biaya_lain'], 'total_all_kewajiban' => $validated['total_all_kewajiban'], 'memo_persetujuan' => $validated['memo_persetujuan'], 'lama_hari' => $validated['lama_hari'], 'proses_hukum' => $validated['proses_hukum'], 'komitmen_debitur' => $validated['komitmen_debitur'], 'keterangan' => $validated['keterangan'], 'status' => $validated['status'] ]; // Emit a success event with a message $hapus_buku = HapusBuku::find($id); $data['updated_by'] = auth()->user()->id; $data['updated_at'] = now(); $approval = [ 'method' => 'update', 'menu' => 'Hapus Buku', 'old_request' => json_encode($hapus_buku), 'new_request' => json_encode($data), 'description' => 'Update Hapus Buku', 'status' => '0', 'ref' => $validated['nomor_pinjaman'] ]; $is_approval = Approval::where('menu', 'Hapus Buku') ->where('ref', $validated['nomor_pinjaman']) ->where('status', '0') ->where('method', 'update') ->get() ->first(); if ($is_approval) { echo json_encode(['status' => 'error', 'message' => 'Data Sedang Menunggu Approval']); } else { Approval::create($approval); echo json_encode(['status' => 'success', 'message' => 'Data Berhasil Di Update, Menunggu Approval']); } }); } catch (Exception $e) { echo json_encode(['status' => 'error', 'message' => $e->getMessage()]); } } } public function hitungBunga(){ $hapusbuku = HapusBuku::all(); foreach($hapusbuku as $key => $value){ $bunga = $value->suku_bunga / 100 * $value->baki_debet; $value->jumlah_bunga = $bunga; $value->save(); } } }