MIF_E31210257/bangunan testing/app/Http/Controllers/AkuntanController.php

618 lines
25 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Validator;
use App\Models\Akun;
use App\Models\Jurnal;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
use Crabbly\Fpdf\Fpdf as FPDF;
class AkuntanController extends Controller
{
// beranda
public function index()
{
$daftar_jurnal = Jurnal::selectRaw("CONCAT(MONTH(waktu_transaksi), '-', YEAR(waktu_transaksi)) as waktu")->distinct()->get();
$total_jurnal = $daftar_jurnal->count();
$data = [
'subtitle' => 'Jurnal Umum',
'button' => true,
'module' => [
'url' => route('jurnal-umum.create'),
'name' => 'Tambah Baru'
]
];
return view('admin.app.content.jurnal_umum.index', compact('daftar_jurnal', 'total_jurnal', 'data'));
}
public function detailJurnalUmum(Request $request, $waktu)
{
if(empty($waktu)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$bulan = date('m', strtotime($waktu));
$tahun = date('Y', strtotime($waktu));
$periode = date('F Y', strtotime($waktu));
$daftar_jurnal = Jurnal::with("akun")->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->get();
$total_debet = Jurnal::where('tipe', 'd')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->sum('nominal');
$total_kredit = Jurnal::where('tipe', 'k')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->sum('nominal');
$total_jurnal = $daftar_jurnal->count();
// print_r($daftar_jurnal[0]->akun->nama_akun); die();
$data = [
'subtitle' => 'Detail Periode ' . $periode
];
return view('admin.app.content.jurnal_umum.detail', compact('data', 'daftar_jurnal', 'total_jurnal', 'periode', 'total_debet', 'total_kredit'));
}
public function cariJurnalUmum(Request $request)
{
$bulan = $request->input('bulan');
$tahun = $request->input('tahun');
$waktu = $tahun.'-'.$bulan.'-01';
$periode = date('F Y', strtotime($waktu));
if(empty($bulan) || empty($tahun)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$daftar_jurnal = Jurnal::whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->get();
$total_debet = Jurnal::where('tipe', 'd')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->sum('nominal');
$total_kredit = Jurnal::where('tipe', 'k')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->sum('nominal');
$total_jurnal = $daftar_jurnal->count();
if(!($total_jurnal)) return redirect()->back()->with('error', "Jurnal Umum dengan Periode $bulan-$tahun tidak ditemukan");
$data = [
'subtitle' => 'Detail Periode ' . $periode,
];
return view('admin.app.content.jurnal_umum.detail', compact('data', 'daftar_jurnal', 'total_jurnal', 'periode', 'total_debet', 'total_kredit'));
}
public function formJurnalUmum()
{
$daftar_akun = Akun::all();
$data = [
'subtitle' => 'Tambah Baru',
];
return view('admin.app.content.jurnal_umum.add', compact('daftar_akun', 'data'));
}
public function storeJurnalUmum(Request $request)
{
$validator = Validator::make($request->all(), [
'keterangan' => 'required|string|max:255',
'waktu_transaksi' => 'required|date',
'nominal' => 'required|integer',
'tipe' => 'required|in:d,k',
'id_akun' => 'required|max:10',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first());
}
$jurnal = Jurnal::create($request->all());
if($jurnal) {
return redirect()->route('jurnal-umum')->with('success', 'Transaksi Berhasil Ditambahkan');
} else {
return redirect()->back()->with('error', 'Transaksi Gagal Ditambahkan');
}
}
public function editJurnalUmum($id)
{
$daftar_akun = Akun::all();
$jurnal = Jurnal::findOrFail($id);
$data = [
'subtitle' => 'Edit Jurnal Umum',
];
return view('admin.app.content.jurnal_umum.edit', compact('jurnal', 'daftar_akun', 'data', 'id'));
}
public function updateJurnalUmum(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'keterangan' => 'required|string|max:255',
'waktu_transaksi' => 'required|date',
'nominal' => 'required|integer',
'tipe' => 'required|in:d,k',
'id_akun' => 'required|max:10',
]);
if ($validator->fails()) {
return redirect()->back()->with('error', $validator->errors()->first());
}
$jurnal = Jurnal::findOrFail($id);
if(!($jurnal)) return redirect()->back()->with('error', 'Transaksi Tidak Ditemukan');
$jurnal->keterangan = $request->input('keterangan');
$jurnal->waktu_transaksi = $request->input('waktu_transaksi');
$jurnal->nominal = $request->input('nominal');
$jurnal->tipe = $request->input('tipe');
$jurnal->id_akun = $request->input('id_akun');
if($jurnal->save()) {
return redirect()->route('jurnal-umum')->with('success', 'Transaksi Berhasil Diubah');
} else {
return redirect()->back()->with('error', 'Transaksi Gagal Diubah');
}
}
public function destroyJurnalUmum($id)
{
$jurnal = Jurnal::findOrFail($id);
if(!($jurnal)) return redirect()->back()->with('error', 'Transaksi Tidak Ditemukan');
if($jurnal->delete()) {
return redirect()->route('jurnal-umum')->with('success', 'Transaksi Berhasil Dihapus');
} else {
return redirect()->back()->with('error', 'Transaksi Gagal Dihapus');
}
}
// buku besar
public function showBukuBesar()
{
$daftar_akun = Akun::all();
$data = [
'subtitle' => 'Buku Besar',
];
return view('admin.app.content.buku-besar', compact('daftar_akun', 'data'));
}
public function akunBukuBesar($id)
{
$daftar_buku = Jurnal::selectRaw("CONCAT(MONTH(waktu_transaksi), '-', YEAR(waktu_transaksi)) as waktu")->where('id_akun', $id)->distinct()->get();
$total_buku = $daftar_buku->count();
$akun = Akun::findOrFail($id);
$data = [
'subtitle' => 'Akun Buku Besar',
];
return view('admin.app.content.akun-buku-besar', compact('daftar_buku', 'total_buku', 'akun', 'data'));
}
public function detailBukuBesar($id, $waktu)
{
if(empty($waktu) || empty($id)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$bulan = date('m', strtotime($waktu));
$tahun = date('Y', strtotime($waktu));
$periode = date('F Y', strtotime($waktu));
$daftar_buku = Jurnal::whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $id)->get();
$total_debet = Jurnal::where('tipe', 'd')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $id)->sum('nominal');
$total_kredit = Jurnal::where('tipe', 'k')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $id)->sum('nominal');
$total_buku = $daftar_buku->count();
$akun = Akun::findOrFail($id);
$data = [
'subtitle' => 'Detail Periode ' . $periode,
];
return view('admin.app.content.detail-buku-besar', compact('data', 'daftar_buku', 'total_buku', 'periode', 'total_debet', 'total_kredit', 'akun'));
}
public function cariBukuBesar($id, Request $request)
{
$bulan = $request->input('bulan');
$tahun = $request->input('tahun');
$waktu = $tahun.'-'.$bulan.'-01';
$periode = date('F Y', strtotime($waktu));
if(empty($id) || empty($bulan) || empty($tahun)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$daftar_buku = Jurnal::whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $id)->get();
$total_debet = Jurnal::where('tipe', 'd')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $id)->sum('nominal');
$total_kredit = Jurnal::where('tipe', 'k')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $id)->sum('nominal');
$total_buku = $daftar_buku->count();
$akun = Akun::findOrFail($id);
if(!($total_buku)) return redirect()->back()->with('error', "Buku Besar dengan Periode $periode tidak ditemukan");
$data = [
'subtitle' => 'Detail Periode ' . $periode,
];
return view('admin.app.content.detail-buku-besar', compact('data', 'daftar_buku', 'total_buku', 'periode', 'total_debet', 'total_kredit', 'akun'));
}
// neraca saldo
public function showNeracaSaldo()
{
$daftar_neraca = Jurnal::selectRaw("CONCAT(MONTH(waktu_transaksi), '-', YEAR(waktu_transaksi)) as waktu")->distinct()->get();
$total_neraca = $daftar_neraca->count();
$data = [
'subtitle' => 'Neraca Saldo',
];
return view('admin.app.content.neraca-saldo', compact('data', 'daftar_neraca', 'total_neraca'));
}
public function detailNeracaSaldo(Request $request, $waktu)
{
if (empty($waktu)) {
return redirect()->back()->with('error', 'Data Tidak Ditemukan');
}
$total_saldo_debet = 0;
$total_saldo_kredit = 0;
$periode = date('F Y', strtotime($waktu));
// Ambil data akun
$daftar_akun = Akun::all();
$bulan = date('m', strtotime($waktu));
$tahun = date('Y', strtotime($waktu));
$detail = [];
foreach ($daftar_akun as $akun) {
$debet = Jurnal::where('tipe', 'd')
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->where('id_akun', $akun->id)
->sum('nominal');
$kredit = Jurnal::where('tipe', 'k')
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->where('id_akun', $akun->id)
->sum('nominal');
$detail[] = [
'nama_akun' => $akun->nama_akun,
'debet' => $debet,
'kredit' => $kredit,
];
$total_saldo_debet += $debet;
$total_saldo_kredit += $kredit;
}
$data = [
'subtitle' => 'Detail Periode ' . $periode,
];
return view('admin.app.content.detail-neraca-saldo', compact('data', 'detail', 'total_saldo_debet', 'total_saldo_kredit', 'periode', 'bulan', 'tahun'));
return view('nama_tampilan', [
'bulan' => $bulan,
'tahun' => $tahun,
// Melewatkan variabel lain jika diperlukan
]);
}
public function cetakNeracaSaldo($waktu)
{
$bulan = date('m', strtotime($waktu));
$tahun = date('Y', strtotime($waktu));
$periode = date('F Y', strtotime($waktu));
$periode = strtoupper($periode);
// Ambil data akun
$daftar_akun = Akun::all();
$total_saldo_debet = 0;
$total_saldo_kredit = 0;
$pdf = new FPDF;
$pdf->AddPage('L', 'A4');
// Header
$pdf->SetFont('Arial', 'B', 18);
$pdf->Cell(0, 10, 'Akuntansi', 0, 2, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Ln();
// Neraca Saldo
$pdf->SetFont('Arial', 'B', 14);
$pdf->Cell(0, 10, "NERACA SALDO $periode", 0, 2, 'C');
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(84, 10, "AKUN", 1, 0, 'C');
$pdf->Cell(84, 10, "DEBET", 1, 0, 'C');
$pdf->Cell(84, 10, "KREDIT", 1, 0, 'C');
$pdf->Ln();
foreach ($daftar_akun as $akun) {
$debet = Jurnal::where('tipe', 'd')
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->where('id_akun', $akun->id)
->sum('nominal');
$kredit = Jurnal::where('tipe', 'k')
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->where('id_akun', $akun->id)
->sum('nominal');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(84, 10, $akun->nama_akun, 1, 0, 'C');
$pdf->Cell(84, 10, "Rp. " . number_format($debet, 0, ',', '.') . ",-", 1, 0, 'C');
$pdf->Cell(84, 10, "Rp. " . number_format($kredit, 0, ',', '.') . ",-", 1, 0, 'C');
$pdf->Ln();
$pdf->Ln();
$total_saldo_debet += $debet;
$total_saldo_kredit += $kredit;
}
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(84, 10, "TOTAL", 1, 0, 'C');
$pdf->Cell(84, 10, "Rp. " . number_format($total_saldo_debet, 0, ',', '.') . ",-", 1, 0, 'C');
$pdf->Cell(84, 10, "Rp. " . number_format($total_saldo_kredit, 0, ',', '.') . ",-", 1, 0, 'C');
$pdf->Ln();
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(31, 10, "TERBILANG", 1, 0, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(168, 10, strtoupper(terbilang($total_saldo_debet)) . " RUPIAH", 1, 0, 'C');
$pdf->Ln();
// Footer
$pdf->SetY(179);
$pdf->SetX(175);
$pdf->SetFont('Arial', 'I', 8);
$pdf->Cell(0, 10, "Dicetak Oleh Akuntan : " . user()->name . " Pada " . date("d-m-Y H:i:s")
. " WIB", 0, 0, 'C');
Session::flash('pesan', 'Laporan Neraca Berhasil Diunduh');
return $pdf->Output('D', "Laporan Neraca $periode.pdf");
}
public function showLabaRugi()
{
$daftar_laba = Jurnal::selectRaw("CONCAT(MONTH(waktu_transaksi), '-', YEAR(waktu_transaksi)) as waktu")->distinct()->get();
$total_laba = $daftar_laba->count();
$data = [
'subtitle' => 'Laba Rugi',
];
return view('admin.app.content.laba-rugi', compact('data', 'daftar_laba', 'total_laba'));
}
public function detailLabaRugi(Request $request, $waktu)
{
if(empty($waktu)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$total_akun = Akun::count();
$bulan = date('m', strtotime($waktu));
$tahun = date('Y', strtotime($waktu));
$periode = date('F Y', strtotime($waktu));
$totalPembeliandebit = Jurnal::where('id_akun', 1)
->where('tipe', 'k')
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->sum('nominal');
//Hutang Usaha (Total Pembelian Kredit/Hutang)
$hutangUsaha = Jurnal::selectRaw('SUM(CASE WHEN tipe = "k" THEN nominal ELSE 0 END) AS total_kredit')
->selectRaw('SUM(CASE WHEN tipe = "d" THEN nominal ELSE 0 END) AS total_debit')
->where('id_akun', 14)
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->first();
$totalKredit = $hutangUsaha->total_kredit ?? 0;
$totalDebit = $hutangUsaha->total_debit ?? 0;
$hutangUsaha = $totalKredit - $totalDebit;
$hpp = $totalPembeliandebit + $hutangUsaha;
//Piutang Usaha (Total Pembelian Kredit/Hutang)
$piutangUsaha = Jurnal::selectRaw('SUM(CASE WHEN tipe = "k" THEN nominal ELSE 0 END) AS total_kredit')
->selectRaw('SUM(CASE WHEN tipe = "d" THEN nominal ELSE 0 END) AS total_debit')
->where('id_akun', 2)
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->first();
$totalKredit = $piutangUsaha->total_kredit ?? 0;
$totalDebit = $piutangUsaha->total_debit ?? 0;
$piutangUsaha = $totalDebit - $totalKredit;
$hpp = $totalPembeliandebit + $hutangUsaha;
$totalPendapatan = Jurnal::where('id_akun',9)
->where('tipe', 'k')
->whereMonth('waktu_transaksi', $bulan)
->whereYear('waktu_transaksi', $tahun)
->sum('nominal');
$data = [
'subtitle' => 'Detail Periode ' . $periode,
'totalPembeliandebit' => $totalPembeliandebit,
'hpp' => $hpp
];
return view('admin.app.content.detail-laba-rugi', compact('data', 'bulan', 'tahun', 'periode', 'totalPembeliandebit', 'totalPendapatan', 'hpp'));
}
public function cariLabaRugi(Request $request)
{
$bulan = $request->input('bulan');
$tahun = $request->input('tahun');
$waktu = $tahun.'-'.$bulan.'-01';
$periode = date('F Y', strtotime($waktu));
if(empty($bulan) || empty($tahun)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$data = [
'subtitle' => 'Detail Periode ' . $periode,
];
return view('admin.app.content.detail-laba-rugi', compact('data', 'bulan', 'tahun', 'periode'));
}
public function showLaporan()
{
$daftar_jurnal = Jurnal::selectRaw("CONCAT(MONTH(waktu_transaksi), '-', YEAR(waktu_transaksi)) as waktu")->distinct()->get();
$total_jurnal = $daftar_jurnal->count();
$data = [
'subtitle' => 'Laporan',
];
return view('admin.app.content.laporan', compact('data','daftar_jurnal', 'total_jurnal'));
}
public function cetakLaporan($waktu)
{
if(empty($waktu)) return redirect()->back()->with('error', 'Data Tidak Ditemukan');
$pdf = new FPDF;
$pdf->AddPage('L', 'A4');
$bulan = date('m', strtotime($waktu));
$tahun = date('Y', strtotime($waktu));
$periode = date('F Y', strtotime($waktu));
$periode = strtoupper($periode);
// Header
$pdf->SetFont('Arial', 'B', 18);
$pdf->Cell(0, 10, 'Akuntansi', 0, 2, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Ln();
$pdf->SetFont('Arial', 'B', 16);
$pdf->Cell(0, 10, "LAPORAN KEUANGAN $periode", 0, 2, 'C');
// Jurnal Umum
$pdf->SetFont('Arial', 'B', 14);
$pdf->Cell(0, 10, "JURNAL UMUM $periode", 0, 2, 'C');
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(25, 10, "NO", 1, 0, 'C');
$pdf->Cell(63, 10, "WAKTU", 1, 0, 'C');
$pdf->Cell(63, 10, "AKUN", 1, 0, 'C');
$pdf->Cell(63, 10, "DEBET", 1, 0, 'C');
$pdf->Cell(63, 10, "KREDIT", 1, 0, 'C');
$pdf->Ln();
$daftar_jurnal = Jurnal::whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->get();
$total_debet = Jurnal::where('tipe', 'd')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->sum('nominal');
$total_kredit = Jurnal::where('tipe', 'k')->whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->sum('nominal');
$pdf->SetFont('Arial', '', 12);
$i = 1;
foreach($daftar_jurnal as $data)
{
$pdf->Cell(25, 10, $i++, 1, 0, 'C');
$pdf->Cell(63, 10, $data->waktu_transaksi, 1, 0, 'C');
$pdf->Cell(63, 10, $data->akun->nama_akun, 1, 0, 'C');
if($data->tipe === 'd') $pdf->Cell(63, 10, 'Rp. '.number_format($data->nominal, 0, ',', '.').',-', 1, 0, 'C');
else $pdf->Cell(63, 10, '-', 1, 0, 'C');
if($data->tipe === 'k') $pdf->Cell(63, 10,'Rp. '.number_format($data->nominal, 0, ',', '.').',-', 1, 0, 'C');
else $pdf->Cell(63, 10, '-', 1, 0, 'C');
$pdf->Ln();
}
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(151, 10, 'TOTAL', 1, 0, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(63, 10, 'Rp. '. number_format($total_debet, 0, ',', '.') . ',-', 1, 0, 'C');
$pdf->Cell(63, 10, 'Rp. ' .number_format($total_kredit, 0, ',', '.') . ',-', 1, 0, 'C');
$pdf->Ln();
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(35, 10, 'TERBILANG', 1, 0, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(121, 10, strtoupper(terbilang($total_debet)).' RUPIAH', 1, 0, 'C');
$pdf->Cell(121, 10, strtoupper(terbilang($total_kredit)).' RUPIAH', 1, 0, 'C');
$pdf->Ln();
// Footer
$pdf->SetY(179);
$pdf->SetX(175);
$pdf->SetFont('Arial','I',8);
$pdf->Cell(0,10,"Dicetak Oleh Akuntan : " . user()->name . " Pada ".date("d-m-Y H:i:s")
." WIB",0,0,'C');
$pdf->AddPage('L', 'A4');
// Buku Besar
$pdf->SetFont('Arial', 'B', 14);
$pdf->Cell(0, 10, "DAFTAR BUKU BESAR $periode", 0, 2, 'C');
$id = Akun::pluck('id');
foreach($id as $i)
{
$daftar_buku[$i] = Jurnal::whereMonth('waktu_transaksi', $bulan)->whereYear('waktu_transaksi', $tahun)->orderBy('waktu_transaksi', 'asc')->where('id_akun', $i)->get();
$data[$i] =
[
'akun' => Akun::findOrFail($i),
'daftar_buku' => $daftar_buku[$i],
'jumlah_debet' => $daftar_buku[$i]->where('tipe', 'd')->sum('nominal'),
'jumlah_kredit' => $daftar_buku[$i]->where('tipe', 'k')->sum('nominal'),
];
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(92, 10, "AKUN : " . $data[$i]['akun']->nama_akun, 0, 0, 'L');
$pdf->Cell(92, 10, "PERIODE : $periode", 0, 0, 'C');
$pdf->Cell(92, 10, "KODE : " . $data[$i]['akun']->kode_akun, 0, 0, 'R');
$pdf->Ln();
$pdf->Cell(138, 10, "TRANSAKSI", 1, 0, 'C');
$pdf->Cell(138, 10, "SALDO", 1, 0, 'C');
$pdf->Ln();
$pdf->Cell(10, 10, "NO", 1, 0, 'C');
$pdf->Cell(30, 10, "WAKTU", 1, 0, 'C');
$pdf->Cell(125, 10, "KETERANGAN", 1, 0, 'C');
$pdf->Cell(56, 10, "DEBET", 1, 0, 'C');
$pdf->Cell(55, 10, "KREDIT", 1, 0, 'C');
$pdf->Ln();
$j = 1;
foreach($data[$i]['daftar_buku'] as $item){
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(10, 10, $j, 1, 0, 'C');
$pdf->Cell(30, 10, $item['waktu_transaksi'], 1, 0, 'C');
$pdf->Cell(125, 10, $item['keterangan'], 1, 0, 'C');
$pdf->Cell(56, 10, "Rp. ".number_format( ($item['tipe'] === 'd') ? $item['nominal'] : "0" , 0, ',', '.').",-", 1, 0, 'C');
$pdf->Cell(55, 10, "Rp. " .number_format( ($item['tipe'] === 'k') ? $item['nominal'] : "0" , 0, ',', '.'). ",-", 1, 0, 'C');
$pdf->Ln();
$j++;
}
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(140, 10, "JUMLAH", 1, 0, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(68, 10, "Rp. ". number_format($data[$i]['jumlah_debet'], 0, ',', '.') .",-", 1, 0, 'C');
$pdf->Cell(68, 10, "Rp. ". number_format($data[$i]['jumlah_kredit'], 0, ',', '.') .",-", 1, 0, 'C');
$pdf->Ln();
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(140, 10, "SALDO", 1, 0, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(136, 10, "Rp. ". number_format( (substr($data[$i]['akun']->kode_akun, 0, 1) === '1' || substr($data[$i]['akun']->kode_akun, 0, 1) === '11') ? $data[$i]['jumlah_debet'] - $data[$i]['jumlah_kredit'] : (((substr($data[$i]['akun']->kode_akun, 0, 1) === '2' || substr($data[$i]['akun']->kode_akun, 0, 1) === '3') || substr($data[$i]['akun']->kode_akun, 0, 1) === '5') ? $data[$i]['jumlah_kredit'] - $data[$i]['jumlah_debet'] : "0")
, 0, ',', '.') .",-", 1, 0, 'C');
$pdf->Ln();
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(50, 10, "TERBILANG", 1, 0, 'C');
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(226, 10, strtoupper( terbilang((substr($data[$i]['akun']->kode_akun, 0, 1) === '1' || substr($data[$i]['akun']->kode_akun, 0, 1) === '11') ? $data[$i]['jumlah_debet'] - $data[$i]['jumlah_kredit'] : (((substr($data[$i]['akun']->kode_akun, 0, 1) === '2' || substr($data[$i]['akun']->kode_akun, 0, 1) === '3') || substr($data[$i]['akun']->kode_akun, 0, 1) === '5') ? $data[$i]['jumlah_kredit'] - $data[$i]['jumlah_debet'] : "0"))) . "RUPIAH", 1, 0, 'C');
$pdf->Ln();
// Footer
$pdf->SetY(179);
$pdf->SetX(175);
$pdf->SetFont('Arial','I',8);
$pdf->Cell(0,10,"Dicetak Oleh Akuntan : ". user()->name ." Pada ".date("d-m-Y H:i:s")." WITA",0,0,'C');
$pdf->AddPage('L', 'A4');
}
// Save
return $pdf->Output('D', "Laporan Keuangan $periode.pdf");
}
}