get(); $coaPengeluaran = RekeningCoa::where('kode_coa', 5)->where('sub_kode_coa', 500)->get(); $rekeningCoaTf = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get(); $distributors = MasterDistributor::all(); $satuans = MasterSatuan::all(); $getLastCoaKebutuhan = RekeningCoa::where('kode_coa', 5)->where('sub_kode_coa', 500)->orderBy('id', 'desc')->first(); if ($getLastCoaKebutuhan == null) { $getLastCoaKebutuhan = 1; } else { $getLastCoaKebutuhan = $getLastCoaKebutuhan->detail_coa + 1; } return view('pages.admin.pengeluaran.index', compact('coaBiaya', 'rekeningCoaTf', 'coaPengeluaran', 'distributors', 'satuans', 'getLastCoaKebutuhan')); } public function simpan(Request $request) { try { DB::beginTransaction(); $user = request()->user(); foreach ($request->rekening_coa_kebutuhan as $key => $value) { $rekening_coa_id = explode('|', $request->rekening_coa_kebutuhan[$key])[0]; $kode_coa = explode('|', $request->rekening_coa_kebutuhan[$key])[1]; $keterangan_coa = explode('|', $request->rekening_coa_kebutuhan[$key])[2]; $nominalnya = $request->nominal[$key] ?? 0; $satuan = $request->satuan[$key] ?? 0; // detail kebutuhan $harga_total = $nominalnya * $satuan; $pengeluaran = Pengeluaran::create([ 'faktur' => "PG-" . date('YmdHis'), 'tanggal' => $request->tanggal_belanja, 'jenis_transaksi' => $request->jenis_transaksi, 'rekening_coa_transfer_id' => $request->id_rekening_coa_transfer ? $request->id_rekening_coa_transfer : null, 'rekening_coa_id' => $rekening_coa_id, 'master_distributors_id' => $request->supplier[$key] ? $request->supplier[$key] : null, 'master_satuans_id' => $request->pilihansatuan[$key] ? $request->pilihansatuan[$key] : null, 'satuan' => $satuan, 'nominal' => $nominalnya, 'total_harga' => $harga_total, 'keterangan' => $request->keterangan[$key] ? $request->keterangan[$key] : null, 'user_id' => $user->id ]); if ($request->jenis_transaksi == "1") { BukuBesar::create([ 'faktur' => "PG-" . date('YmdHis'), 'tanggal' => $request->tanggal_belanja, 'rekening_coa_id' => "2", 'pengeluaran_id' => $pengeluaran->id, 'kode_rekening_coa' => "1.100.01", 'keterangan_coa' => "Kas Kasir", 'keterangan' => $request->keterangan[$key] ?? '', 'debet' => 0, 'kredit' => $request->nominal[$key] ?? 0 ]); BukuBesar::create([ 'faktur' => "PG-" . date('YmdHis'), 'tanggal' => $request->tanggal_belanja, 'rekening_coa_id' => $rekening_coa_id, 'kode_rekening_coa' => $kode_coa, 'pengeluaran_id' => $pengeluaran->id, 'keterangan_coa' => $keterangan_coa, 'keterangan' => $request->keterangan[$key] ?? '', 'debet' => $request->nominal[$key] ?? '', 'kredit' => 0, ]); } else { BukuBesar::create([ 'faktur' => "PG-" . date('YmdHis'), 'tanggal' => $request->tanggal_belanja, 'rekening_coa_id' => $request->id_rekening_coa_transfer, 'kode_rekening_coa' => $request->kode_coa_transfer, 'pengeluaran_id' => $pengeluaran->id, 'keterangan_coa' => $request->keterangan_coa_transfer, 'keterangan' => $request->keterangan[$key], 'debet' => 0, 'kredit' => $request->nominal[$key] ]); BukuBesar::create([ 'faktur' => "PG-" . date('YmdHis'), 'tanggal' => $request->tanggal_belanja, 'rekening_coa_id' => $rekening_coa_id, 'kode_rekening_coa' => $kode_coa, 'pengeluaran_id' => $pengeluaran->id, 'keterangan_coa' => $keterangan_coa, 'keterangan' => $request->keterangan[$key], 'debet' => $request->nominal[$key], 'kredit' => 0, ]); } } DB::commit(); return response()->json(['status' => true, 'message' => 'Data berhasil tersimpan']); } catch (\Throwable $th) { DB::rollBack(); dd($th->getMessage() . ' ' . $th->getLine() . ' ' . $th->getFile()); return response()->json(['status' => false, 'message' => 'Kesalahan menyimpan data']); } } public function laporan(Request $request) { $mpdf = new \Mpdf\Mpdf([ 'mode' => 'utf-8', 'format' => 'A4', 'orientation' => 'Landscape', 'margin_left' => 15, 'margin_right' => 15, 'margin_top' => 10, 'margin_bottom' => 10, 'default_font_size' => 9, 'default_font' => 'arial', ]); $mpdf->AddPage(); $mpdf->setFooter('{PAGENO}'); $data = Pengeluaran::with('user', 'masterDistributor', 'masterSatuan', 'rekeningCoa', 'rekeningCoaTransfer')->whereDate('tanggal', '>=', $request->filter_tanggal_1) ->whereDate('tanggal', '<=', $request->filter_tanggal_2) ->get(); $html = view('pages.admin.pengeluaran.laporan', [ 'data' => $data, 'filter_tanggal_1' => $request->filter_tanggal_1, 'filter_tanggal_2' => $request->filter_tanggal_2, ]); $mpdf->writeHTML($html); $mpdf->Output('Laporan_Pengeluaran.pdf', 'I'); return response()->header('Content-Type', 'application/pdf'); } public function getDatapengeluaran(Request $request) { $nomor = 1; $filter_tanggal_1 = $request->filter_tanggal_1; $filter_tanggal_2 = $request->filter_tanggal_2; $data = Pengeluaran::with('user', 'masterDistributor', 'masterSatuan', 'rekeningCoa', 'rekeningCoaTransfer') ->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) { return $query->whereDate('tanggal', '>=', $filter_tanggal_1); }) ->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) { return $query->whereDate('tanggal', '<=', $filter_tanggal_2); }) ->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) { return $query->whereDate('tanggal', Carbon::today()); }) ->orderBy('tanggal', 'desc') ->get(); return datatables() ->of($data) ->addColumn('suppliersnya', function ($data) { if ($data->master_distributors_id == null) { return '-'; } else { return $data->masterDistributor->nama_distributor; } }) ->addColumn('transaksinya', function ($data) { if ($data->jenis_transaksi == 1) { return "Tunai"; } else { return "Transfer" . " " . $data->rekeningCoaTransfer->keterangan_coa; } }) ->addColumn('satuannya', function ($data) { return $data->satuan . " " . $data->masterSatuan?->simbol ?? ''; }) ->addColumn('rekening_coa', function ($data) { return $data->rekeningCoa->keterangan_coa . " " . $data->keterangan ?? ''; }) ->addColumn('nomor', function ($data) use (&$nomor) { return $nomor++; }) ->addColumn('action', function ($data) { return '
'; }) ->rawColumns(['action']) ->make(true); } public function delete(Request $request) { try { DB::beginTransaction(); $pengeluaran = Pengeluaran::find($request->id); $pengeluaran->delete(); BukuBesar::where('faktur', $request->faktur)->delete(); DB::commit(); return response()->json(['status' => true, 'message' => 'Data berhasil dihapus']); } catch (\Throwable $th) { DB::rollBack(); return response()->json(['status' => false, 'message' => 'Kesalahan menghapus data']); } } public function generateLocalStorage(Request $request) { $coaPengeluaran = RekeningCoa::where('kode_coa', 5)->where('sub_kode_coa', 500)->get(); $distributors = MasterDistributor::all(); $satuans = MasterSatuan::all(); $rekening_coa_kebutuhan = $request->rekening_coa_kebutuhan; $nominal = $request->nominal; $pilihansatuan = $request->pilihansatuan; $satuannya = $request->satuan; $supplier = $request->supplier; $keterangan = $request->keterangan; $total_harga = $request->total; return view('pages.admin.pengeluaran.cardpengeluaran', compact('coaPengeluaran', 'distributors', 'satuans', 'rekening_coa_kebutuhan', 'nominal', 'pilihansatuan', 'satuannya', 'supplier', 'keterangan', 'total_harga')); } }