618 lines
25 KiB
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");
|
|
}
|
|
|
|
|
|
} |