update tgl 18 april2
This commit is contained in:
parent
ba94899fa2
commit
8358bb46b8
|
@ -15,13 +15,28 @@ class LaporanController extends Controller
|
|||
public function index()
|
||||
{
|
||||
$laporan = LaporanModel::orderBy('Tanggal', 'desc')->get();
|
||||
$totalUangMasuk = LaporanModel::sum('uang_masuk');
|
||||
$totalUangKeluar = LaporanModel::sum('uang_keluar');
|
||||
$totalGaji = LaporanModel::sum('gaji');
|
||||
$totalKredit = $totalUangKeluar + $totalGaji;
|
||||
|
||||
// Hitung total uang masuk (termasuk uang_masuk2-5)
|
||||
$totalUangMasuk = LaporanModel::selectRaw('SUM(uang_masuk) +
|
||||
COALESCE(SUM(uang_masuk2), 0) +
|
||||
COALESCE(SUM(uang_masuk3), 0) +
|
||||
COALESCE(SUM(uang_masuk4), 0) +
|
||||
COALESCE(SUM(uang_masuk5), 0) as total')
|
||||
->value('total') ?? 0;
|
||||
|
||||
// Hitung total uang keluar (termasuk uang_keluar2-5)
|
||||
$totalUangKeluar = LaporanModel::selectRaw('SUM(uang_keluar) +
|
||||
COALESCE(SUM(uang_keluar2), 0) +
|
||||
COALESCE(SUM(uang_keluar3), 0) +
|
||||
COALESCE(SUM(uang_keluar4), 0) +
|
||||
COALESCE(SUM(uang_keluar5), 0) as total')
|
||||
->value('total') ?? 0;
|
||||
|
||||
// Tidak ada lagi kolom gaji, jadi kita menghilangkannya
|
||||
$totalKredit = $totalUangKeluar; // Hanya menggunakan total uang keluar
|
||||
$saldo = $totalUangMasuk - $totalKredit;
|
||||
|
||||
return view('Laporan', compact('laporan', 'totalUangMasuk', 'totalUangKeluar', 'totalGaji', 'totalKredit', 'saldo'));
|
||||
return view('Laporan', compact('laporan', 'totalUangMasuk', 'totalUangKeluar', 'totalKredit', 'saldo'));
|
||||
}
|
||||
|
||||
public function exportExcel()
|
||||
|
@ -39,24 +54,38 @@ public function headings(): array
|
|||
return [
|
||||
'ID',
|
||||
'Tanggal',
|
||||
'Kode',
|
||||
'Kategori',
|
||||
'Keterangan',
|
||||
'Nama Karyawan',
|
||||
'Uang Masuk',
|
||||
'Uang Keluar',
|
||||
'Gaji',
|
||||
'Uang Keluar'
|
||||
];
|
||||
}
|
||||
|
||||
public function map($laporan): array
|
||||
{
|
||||
// Hitung total uang masuk untuk baris ini
|
||||
$totalUangMasuk = $laporan->uang_masuk +
|
||||
($laporan->uang_masuk2 ?? 0) +
|
||||
($laporan->uang_masuk3 ?? 0) +
|
||||
($laporan->uang_masuk4 ?? 0) +
|
||||
($laporan->uang_masuk5 ?? 0);
|
||||
|
||||
// Hitung total uang keluar untuk baris ini
|
||||
$totalUangKeluar = $laporan->uang_keluar +
|
||||
($laporan->uang_keluar2 ?? 0) +
|
||||
($laporan->uang_keluar3 ?? 0) +
|
||||
($laporan->uang_keluar4 ?? 0) +
|
||||
($laporan->uang_keluar5 ?? 0);
|
||||
|
||||
return [
|
||||
$laporan->id,
|
||||
$laporan->Tanggal,
|
||||
$laporan->kode,
|
||||
$laporan->kategori,
|
||||
$laporan->keterangan,
|
||||
$laporan->nama_karyawan,
|
||||
$laporan->uang_masuk,
|
||||
$laporan->uang_keluar,
|
||||
$laporan->gaji,
|
||||
$totalUangMasuk,
|
||||
$totalUangKeluar
|
||||
];
|
||||
}
|
||||
};
|
||||
|
@ -71,13 +100,26 @@ public function exportPDF()
|
|||
{
|
||||
try {
|
||||
$laporan = LaporanModel::orderBy('Tanggal', 'desc')->get();
|
||||
$totalUangMasuk = LaporanModel::sum('uang_masuk');
|
||||
$totalUangKeluar = LaporanModel::sum('uang_keluar');
|
||||
$totalGaji = LaporanModel::sum('gaji');
|
||||
$totalKredit = $totalUangKeluar + $totalGaji;
|
||||
|
||||
// Hitung total uang masuk
|
||||
$totalUangMasuk = LaporanModel::selectRaw('SUM(uang_masuk) +
|
||||
COALESCE(SUM(uang_masuk2), 0) +
|
||||
COALESCE(SUM(uang_masuk3), 0) +
|
||||
COALESCE(SUM(uang_masuk4), 0) +
|
||||
COALESCE(SUM(uang_masuk5), 0) as total')
|
||||
->value('total') ?? 0;
|
||||
|
||||
// Hitung total uang keluar
|
||||
$totalKredit = LaporanModel::selectRaw('SUM(uang_keluar) +
|
||||
COALESCE(SUM(uang_keluar2), 0) +
|
||||
COALESCE(SUM(uang_keluar3), 0) +
|
||||
COALESCE(SUM(uang_keluar4), 0) +
|
||||
COALESCE(SUM(uang_keluar5), 0) as total')
|
||||
->value('total') ?? 0;
|
||||
|
||||
$saldo = $totalUangMasuk - $totalKredit;
|
||||
|
||||
// Generate PDF langsung menggunakan HTML inline
|
||||
// Generate PDF
|
||||
$html = '
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
@ -120,25 +162,39 @@ public function exportPDF()
|
|||
<tr>
|
||||
<th>No</th>
|
||||
<th>Tanggal</th>
|
||||
<th>Kode</th>
|
||||
<th>Kategori</th>
|
||||
<th>Keterangan</th>
|
||||
<th>Nama Karyawan</th>
|
||||
<th>Uang Masuk</th>
|
||||
<th>Uang Keluar</th>
|
||||
<th>Gaji</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
foreach($laporan as $index => $item) {
|
||||
// Hitung total uang masuk untuk baris ini
|
||||
$rowUangMasuk = $item->uang_masuk +
|
||||
($item->uang_masuk2 ?? 0) +
|
||||
($item->uang_masuk3 ?? 0) +
|
||||
($item->uang_masuk4 ?? 0) +
|
||||
($item->uang_masuk5 ?? 0);
|
||||
|
||||
// Hitung total uang keluar untuk baris ini
|
||||
$rowUangKeluar = $item->uang_keluar +
|
||||
($item->uang_keluar2 ?? 0) +
|
||||
($item->uang_keluar3 ?? 0) +
|
||||
($item->uang_keluar4 ?? 0) +
|
||||
($item->uang_keluar5 ?? 0);
|
||||
|
||||
$html .= '
|
||||
<tr>
|
||||
<td>'.($index + 1).'</td>
|
||||
<td>'.$item->Tanggal.'</td>
|
||||
<td>'.$item->kode.'</td>
|
||||
<td>'.$item->kategori.'</td>
|
||||
<td>'.$item->keterangan.'</td>
|
||||
<td>'.$item->nama_karyawan.'</td>
|
||||
<td>Rp '.number_format($item->uang_masuk, 0, ',', '.').'</td>
|
||||
<td>Rp '.number_format($item->uang_keluar, 0, ',', '.').'</td>
|
||||
<td>Rp '.number_format($item->gaji, 0, ',', '.').'</td>
|
||||
<td>Rp '.number_format($rowUangMasuk, 0, ',', '.').'</td>
|
||||
<td>Rp '.number_format($rowUangKeluar, 0, ',', '.').'</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
|
@ -155,14 +211,6 @@ public function exportPDF()
|
|||
</tr>
|
||||
<tr>
|
||||
<td><strong>Total Uang Keluar</strong></td>
|
||||
<td>Rp '.number_format($totalUangKeluar, 0, ',', '.').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Total Gaji</strong></td>
|
||||
<td>Rp '.number_format($totalGaji, 0, ',', '.').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Total Kredit</strong></td>
|
||||
<td>Rp '.number_format($totalKredit, 0, ',', '.').'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
@ -0,0 +1,136 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\NeracasaldoModel;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class NeracasaldoController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$rawTransaksis = NeracasaldoModel::orderBy('kode', 'asc')->get();
|
||||
$transaksis = collect();
|
||||
|
||||
foreach ($rawTransaksis as $transaksi) {
|
||||
// Menambahkan baris untuk kode utama
|
||||
if ($transaksi->kode) {
|
||||
$transaksis->push([
|
||||
'kode' => $transaksi->kode,
|
||||
'kategori' => $transaksi->kategori,
|
||||
'keterangan' => $transaksi->keterangan,
|
||||
'nama_karyawan' => $transaksi->nama_karyawan,
|
||||
'debit' => $transaksi->uang_masuk,
|
||||
'kredit' => $transaksi->uang_keluar,
|
||||
'id' => $transaksi->id
|
||||
]);
|
||||
}
|
||||
|
||||
// Menambahkan baris untuk kode2
|
||||
if ($transaksi->kode2) {
|
||||
$transaksis->push([
|
||||
'kode' => $transaksi->kode2,
|
||||
'kategori' => $transaksi->kategori2,
|
||||
'keterangan' => $transaksi->keterangan,
|
||||
'nama_karyawan' => $transaksi->nama_karyawan,
|
||||
'debit' => $transaksi->uang_masuk2,
|
||||
'kredit' => $transaksi->uang_keluar2,
|
||||
'id' => $transaksi->id
|
||||
]);
|
||||
}
|
||||
|
||||
// Menambahkan baris untuk kode3
|
||||
if ($transaksi->kode3) {
|
||||
$transaksis->push([
|
||||
'kode' => $transaksi->kode3,
|
||||
'kategori' => $transaksi->kategori3,
|
||||
'keterangan' => $transaksi->keterangan,
|
||||
'nama_karyawan' => $transaksi->nama_karyawan,
|
||||
'debit' => $transaksi->uang_masuk3,
|
||||
'kredit' => $transaksi->uang_keluar3,
|
||||
'id' => $transaksi->id
|
||||
]);
|
||||
}
|
||||
|
||||
// Menambahkan baris untuk kode4
|
||||
if ($transaksi->kode4) {
|
||||
$transaksis->push([
|
||||
'kode' => $transaksi->kode4,
|
||||
'kategori' => $transaksi->kategori4,
|
||||
'keterangan' => $transaksi->keterangan,
|
||||
'nama_karyawan' => $transaksi->nama_karyawan,
|
||||
'debit' => $transaksi->uang_masuk4,
|
||||
'kredit' => $transaksi->uang_keluar4,
|
||||
'id' => $transaksi->id
|
||||
]);
|
||||
}
|
||||
|
||||
// Menambahkan baris untuk kode5
|
||||
if ($transaksi->kode5) {
|
||||
$transaksis->push([
|
||||
'kode' => $transaksi->kode5,
|
||||
'kategori' => $transaksi->kategori5,
|
||||
'keterangan' => $transaksi->keterangan,
|
||||
'nama_karyawan' => $transaksi->nama_karyawan,
|
||||
'debit' => $transaksi->uang_masuk5,
|
||||
'kredit' => $transaksi->uang_keluar5,
|
||||
'id' => $transaksi->id
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
// Mengurutkan berdasarkan kode
|
||||
$transaksis = $transaksis->sortBy('kode');
|
||||
|
||||
return view('Neracasaldo', compact('transaksis'));
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
return view('neracasaldo.create');
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'Tanggal' => 'required|date',
|
||||
'kode' => 'required|string',
|
||||
'kategori' => 'required|string',
|
||||
]);
|
||||
|
||||
NeracasaldoModel::create($request->all());
|
||||
|
||||
return redirect()->route('neracasaldo.index')
|
||||
->with('success', 'Data berhasil ditambahkan');
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$transaksi = NeracasaldoModel::findOrFail($id);
|
||||
return view('neracasaldo.edit', compact('transaksi'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$request->validate([
|
||||
'Tanggal' => 'required|date',
|
||||
'kode' => 'required|string',
|
||||
'kategori' => 'required|string',
|
||||
]);
|
||||
|
||||
$transaksi = NeracasaldoModel::findOrFail($id);
|
||||
$transaksi->update($request->all());
|
||||
|
||||
return redirect()->route('neracasaldo.index')
|
||||
->with('success', 'Data berhasil diperbarui');
|
||||
}
|
||||
|
||||
public function destroy($id)
|
||||
{
|
||||
$transaksi = NeracasaldoModel::findOrFail($id);
|
||||
$transaksi->delete();
|
||||
|
||||
return redirect()->route('neracasaldo.index')
|
||||
->with('success', 'Data berhasil dihapus');
|
||||
}
|
||||
}
|
|
@ -25,12 +25,26 @@ class LaporanModel extends Model
|
|||
protected $fillable = [
|
||||
'Tanggal',
|
||||
'kode',
|
||||
'kode2',
|
||||
'kode3',
|
||||
'kode4',
|
||||
'kode5',
|
||||
'kategori',
|
||||
'kategori2',
|
||||
'kategori3',
|
||||
'kategori4',
|
||||
'kategori5',
|
||||
'keterangan',
|
||||
'nama_karyawan',
|
||||
'uang_masuk',
|
||||
'uang_masuk2',
|
||||
'uang_masuk3',
|
||||
'uang_masuk4',
|
||||
'uang_masuk5',
|
||||
'uang_keluar',
|
||||
'gaji'
|
||||
'uang_keluar2',
|
||||
'uang_keluar3',
|
||||
'uang_keluar4',
|
||||
'uang_keluar5'
|
||||
];
|
||||
|
||||
// Timestamps
|
||||
|
@ -43,7 +57,14 @@ class LaporanModel extends Model
|
|||
protected $casts = [
|
||||
'Tanggal' => 'date',
|
||||
'uang_masuk' => 'decimal:2',
|
||||
'uang_masuk2' => 'decimal:2',
|
||||
'uang_masuk3' => 'decimal:2',
|
||||
'uang_masuk4' => 'decimal:2',
|
||||
'uang_masuk5' => 'decimal:2',
|
||||
'uang_keluar' => 'decimal:2',
|
||||
'gaji' => 'decimal:2',
|
||||
'uang_keluar2' => 'decimal:2',
|
||||
'uang_keluar3' => 'decimal:2',
|
||||
'uang_keluar4' => 'decimal:2',
|
||||
'uang_keluar5' => 'decimal:2'
|
||||
];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class NeracasaldoModel extends Model
|
||||
{
|
||||
protected $table = 'laporan_transaksis';
|
||||
|
||||
protected $fillable = [
|
||||
'Tanggal',
|
||||
'kode', 'kode2', 'kode3', 'kode4', 'kode5',
|
||||
'kategori', 'kategori2', 'kategori3', 'kategori4', 'kategori5',
|
||||
'keterangan',
|
||||
'nama_karyawan',
|
||||
'uang_masuk', 'uang_masuk2', 'uang_masuk3', 'uang_masuk4', 'uang_masuk5',
|
||||
'uang_keluar', 'uang_keluar2', 'uang_keluar3', 'uang_keluar4', 'uang_keluar5',
|
||||
'gaji'
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'Tanggal' => 'date',
|
||||
'uang_masuk' => 'decimal:2',
|
||||
'uang_masuk2' => 'decimal:2',
|
||||
'uang_masuk3' => 'decimal:2',
|
||||
'uang_masuk4' => 'decimal:2',
|
||||
'uang_masuk5' => 'decimal:2',
|
||||
'uang_keluar' => 'decimal:2',
|
||||
'uang_keluar2' => 'decimal:2',
|
||||
'uang_keluar3' => 'decimal:2',
|
||||
'uang_keluar4' => 'decimal:2',
|
||||
'uang_keluar5' => 'decimal:2',
|
||||
'gaji' => 'decimal:2'
|
||||
];
|
||||
}
|
|
@ -0,0 +1,71 @@
|
|||
@extends('Core.Sidebar')
|
||||
|
||||
@section('content')
|
||||
<title>Buku Besar Perusahaan Dagang</title>
|
||||
<!-- Tailwind CSS -->
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<!-- Font Awesome -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
|
||||
<!-- CSRF Token -->
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<div class="box p-4 intro-y mt-5">
|
||||
<div class="intro-y">
|
||||
<!-- Header -->
|
||||
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
||||
<h1 class="text-2xl font-bold">Neraca Saldo Perusahaan Dagang</h1>
|
||||
<p class="text-sm mt-1">Entri Neraca Saldo Budivespaendut</p>
|
||||
<p class="text-sm">Anggrek</p>
|
||||
</div>
|
||||
|
||||
<!-- Tabel Transaksi -->
|
||||
<div class="overflow-x-auto">
|
||||
<table class="w-full bg-white border border-gray-300">
|
||||
<thead>
|
||||
<tr class="bg-gray-100 text-gray-600 uppercase text-sm leading-normal">
|
||||
<th class="py-3 px-4 text-left">Kode</th>
|
||||
<th class="py-3 px-4 text-left">Kategori</th>
|
||||
<th class="py-3 px-4 text-left">Keterangan</th>
|
||||
<th class="py-3 px-4 text-right">Debit</th>
|
||||
<th class="py-3 px-4 text-right">Kredit</th>
|
||||
<th class="py-3 px-4 text-center">Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach($transaksis as $transaksi)
|
||||
<tr class="border-b border-gray-200 hover:bg-gray-100">
|
||||
<td class="py-3 px-4">{{ $transaksi['kode'] }}</td>
|
||||
<td class="py-3 px-4">{{ $transaksi['kategori'] }}</td>
|
||||
<td class="py-3 px-4">{{ $transaksi['keterangan'] }}</td>
|
||||
<td class="py-3 px-4 text-right">
|
||||
@if($transaksi['debit'] > 0)
|
||||
{{ number_format($transaksi['debit'], 2) }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="py-3 px-4 text-right">
|
||||
@if($transaksi['kredit'] > 0)
|
||||
{{ number_format($transaksi['kredit'], 2) }}
|
||||
@endif
|
||||
</td>
|
||||
<td class="py-3 px-4 text-center">
|
||||
<div class="flex item-center justify-center">
|
||||
<a href="{{ route('neracasaldo.edit', $transaksi['id']) }}" class="w-4 mr-2 transform hover:text-purple-500 hover:scale-110">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<form action="{{ route('neracasaldo.destroy', $transaksi['id']) }}" method="POST" class="inline">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="w-4 mr-2 transform hover:text-red-500 hover:scale-110" onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?')">
|
||||
<i class="fas fa-trash"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
|
@ -15,6 +15,7 @@
|
|||
use App\Http\Controllers\UserController;
|
||||
use App\Http\Controllers\AuthController;
|
||||
use App\Http\Controllers\RekeningController;
|
||||
use App\Http\Controllers\NeracasaldoController;
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Web Routes
|
||||
|
@ -67,4 +68,5 @@
|
|||
Route::delete('/rekening/{id}', [RekeningController::class, 'destroy'])->name('rekening.destroy');
|
||||
Route::get('/rekening/export-excel', [RekeningController::class, 'exportExcel'])->name('rekening.export-excel');
|
||||
Route::get('/rekening/export-pdf', [RekeningController::class, 'exportPDF'])->name('rekening.export-pdf');
|
||||
Route::resource('neracasaldo', NeracasaldoController::class);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue