update tgl 22 april2
This commit is contained in:
parent
dbc6d467aa
commit
778db53716
|
@ -34,9 +34,12 @@ public function store(Request $request)
|
||||||
'gaji' => $gaji
|
'gaji' => $gaji
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return redirect()->back()->with('success', 'Data karyawan berhasil ditambahkan!');
|
// Redirect ke halaman gaji dengan pesan sukses
|
||||||
|
return redirect()->route('gaji.index')
|
||||||
|
->with('success', 'Data karyawan berhasil ditambahkan!');
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return redirect()->back()->with('error', 'Gagal menambahkan data karyawan: ' . $e->getMessage());
|
return redirect()->back()
|
||||||
|
->with('error', 'Gagal menambahkan data karyawan: ' . $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,15 +33,37 @@ public function edit($id)
|
||||||
|
|
||||||
public function update(Request $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
$karyawan = GajiModel::findOrFail($id);
|
try {
|
||||||
$karyawan->update($request->all());
|
$karyawan = GajiModel::findOrFail($id);
|
||||||
return redirect()->route('gaji.index')->with('success', 'Data gaji berhasil diperbarui');
|
|
||||||
|
// Bersihkan format angka dari gaji
|
||||||
|
$request->merge([
|
||||||
|
'gaji' => str_replace('.', '', $request->gaji)
|
||||||
|
]);
|
||||||
|
|
||||||
|
$karyawan->update($request->all());
|
||||||
|
return redirect()->route('gaji.index')
|
||||||
|
->with('success', 'Data gaji berhasil diperbarui!');
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return redirect()->back()
|
||||||
|
->with('error', 'Gagal memperbarui data gaji: ' . $e->getMessage());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy($id)
|
public function destroy($id)
|
||||||
{
|
{
|
||||||
$karyawan = GajiModel::findOrFail($id);
|
try {
|
||||||
$karyawan->delete();
|
$karyawan = GajiModel::findOrFail($id);
|
||||||
return response()->json(['success' => true]);
|
$karyawan->delete();
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'message' => 'Data gaji berhasil dihapus!'
|
||||||
|
]);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return response()->json([
|
||||||
|
'success' => false,
|
||||||
|
'message' => 'Gagal menghapus data gaji: ' . $e->getMessage()
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -39,40 +39,42 @@ private function getKodeAkun($kategori)
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function prosesKategori($kategori, $uang_masuk, $uang_keluar, &$pendapatan, &$beban)
|
private function getAccountType($kodeAkun) {
|
||||||
{
|
$kode = (string)$kodeAkun;
|
||||||
$kodeAkun = $this->getKodeAkun($kategori);
|
if (str_starts_with($kode, '111') || str_starts_with($kode, '112')) {
|
||||||
if ($kodeAkun) {
|
return 'AKTIVA';
|
||||||
if (str_starts_with($kodeAkun, '24')) {
|
} else if (str_starts_with($kode, '121') || str_starts_with($kode, '122') || str_starts_with($kode, '131')) {
|
||||||
// Untuk pendapatan
|
return 'PASIVA';
|
||||||
$nominal = $uang_masuk;
|
} else if (str_starts_with($kode, '241') || str_starts_with($kode, '242')) {
|
||||||
$data = [
|
return 'PENDAPATAN';
|
||||||
'kategori' => $kategori,
|
} else if (str_starts_with($kode, '251') || str_starts_with($kode, '252')) {
|
||||||
'kode_akun' => $kodeAkun,
|
return 'BEBAN';
|
||||||
'nominal' => $nominal
|
|
||||||
];
|
|
||||||
|
|
||||||
if (isset($pendapatan[$kategori])) {
|
|
||||||
$pendapatan[$kategori]['nominal'] += $nominal;
|
|
||||||
} else {
|
|
||||||
$pendapatan[$kategori] = $data;
|
|
||||||
}
|
|
||||||
} elseif (str_starts_with($kodeAkun, '25')) {
|
|
||||||
// Untuk beban
|
|
||||||
$nominal = $uang_keluar;
|
|
||||||
$data = [
|
|
||||||
'kategori' => $kategori,
|
|
||||||
'kode_akun' => $kodeAkun,
|
|
||||||
'nominal' => $nominal
|
|
||||||
];
|
|
||||||
|
|
||||||
if (isset($beban[$kategori])) {
|
|
||||||
$beban[$kategori]['nominal'] += $nominal;
|
|
||||||
} else {
|
|
||||||
$beban[$kategori] = $data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
return 'UNKNOWN';
|
||||||
|
}
|
||||||
|
|
||||||
|
private function calculateBalance($previousBalance, $debit, $kredit, $accountType) {
|
||||||
|
$balance = $previousBalance;
|
||||||
|
|
||||||
|
switch($accountType) {
|
||||||
|
case 'AKTIVA':
|
||||||
|
// Aktiva: bertambah di debit, berkurang di kredit
|
||||||
|
$balance = $balance + $debit - $kredit;
|
||||||
|
break;
|
||||||
|
case 'PASIVA':
|
||||||
|
case 'PENDAPATAN':
|
||||||
|
// Pasiva & Pendapatan: bertambah di kredit, berkurang di debit
|
||||||
|
$balance = $balance - $debit + $kredit;
|
||||||
|
break;
|
||||||
|
case 'BEBAN':
|
||||||
|
// Beban: bertambah di debit, berkurang di kredit
|
||||||
|
$balance = $balance + $debit - $kredit;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$balance = $balance + $debit - $kredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $balance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
|
@ -81,147 +83,175 @@ public function index(Request $request)
|
||||||
$startDate = $request->input('start_date', Carbon::now()->startOfMonth()->format('Y-m-d'));
|
$startDate = $request->input('start_date', Carbon::now()->startOfMonth()->format('Y-m-d'));
|
||||||
$endDate = $request->input('end_date', Carbon::now()->endOfMonth()->format('Y-m-d'));
|
$endDate = $request->input('end_date', Carbon::now()->endOfMonth()->format('Y-m-d'));
|
||||||
|
|
||||||
// Inisialisasi array untuk menyimpan data
|
|
||||||
$pendapatan = [];
|
|
||||||
$beban = [];
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Ambil semua transaksi dalam periode
|
// Ambil semua transaksi dalam periode
|
||||||
$transaksis = DB::table('laporan_transaksis')
|
$transaksis = DB::table('laporan_transaksis')
|
||||||
->whereBetween('Tanggal', [$startDate, $endDate])
|
->whereBetween('Tanggal', [$startDate, $endDate])
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
// Reset total
|
// Array untuk menyimpan total per kategori
|
||||||
$totalUangMasuk = 0;
|
$totalsPerAkun = [];
|
||||||
$totalUangKeluar = 0;
|
$totalPendapatan = 0;
|
||||||
|
$totalBeban = 0;
|
||||||
|
|
||||||
|
// Fungsi untuk menambahkan atau memperbarui total per akun
|
||||||
|
$processAkun = function($kode, $kategori, $debit, $kredit) use (&$totalsPerAkun) {
|
||||||
|
if (!empty($kode) && !empty($kategori)) {
|
||||||
|
if (!isset($totalsPerAkun[$kategori])) {
|
||||||
|
$totalsPerAkun[$kategori] = [
|
||||||
|
'kode' => $kode,
|
||||||
|
'kategori' => $kategori,
|
||||||
|
'debit' => 0,
|
||||||
|
'kredit' => 0
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$totalsPerAkun[$kategori]['debit'] += floatval($debit ?? 0);
|
||||||
|
$totalsPerAkun[$kategori]['kredit'] += floatval($kredit ?? 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
foreach ($transaksis as $transaksi) {
|
foreach ($transaksis as $transaksi) {
|
||||||
// Proses kategori1
|
// Proses untuk semua kategori
|
||||||
if (!empty($transaksi->kategori)) {
|
for ($i = 1; $i <= 5; $i++) {
|
||||||
$this->prosesKategori(
|
$kategoriField = $i === 1 ? 'kategori' : "kategori{$i}";
|
||||||
$transaksi->kategori,
|
$uangMasukField = $i === 1 ? 'uang_masuk' : "uang_masuk{$i}";
|
||||||
$transaksi->uang_masuk ?? 0,
|
$uangKeluarField = $i === 1 ? 'uang_keluar' : "uang_keluar{$i}";
|
||||||
$transaksi->uang_keluar ?? 0,
|
|
||||||
$pendapatan,
|
|
||||||
$beban
|
|
||||||
);
|
|
||||||
|
|
||||||
// Tambahkan ke total
|
if (!empty($transaksi->$kategoriField)) {
|
||||||
$totalUangMasuk += $transaksi->uang_masuk ?? 0;
|
$kodeAkun = $this->getKodeAkun($transaksi->$kategoriField);
|
||||||
$totalUangKeluar += $transaksi->uang_keluar ?? 0;
|
if ($kodeAkun) {
|
||||||
}
|
$processAkun(
|
||||||
|
$kodeAkun,
|
||||||
|
$transaksi->$kategoriField,
|
||||||
|
$transaksi->$uangMasukField,
|
||||||
|
$transaksi->$uangKeluarField
|
||||||
|
);
|
||||||
|
|
||||||
// Proses kategori2-5
|
// Hitung total berdasarkan jenis akun
|
||||||
for ($i = 2; $i <= 5; $i++) {
|
$accountType = $this->getAccountType($kodeAkun);
|
||||||
$kategori = $transaksi->{"kategori$i"};
|
if ($accountType === 'PENDAPATAN') {
|
||||||
if (!empty($kategori)) {
|
$totalPendapatan = $this->calculateBalance(
|
||||||
$this->prosesKategori(
|
$totalPendapatan,
|
||||||
$kategori,
|
floatval($transaksi->$uangMasukField ?? 0),
|
||||||
$transaksi->{"uang_masuk$i"} ?? 0,
|
floatval($transaksi->$uangKeluarField ?? 0),
|
||||||
$transaksi->{"uang_keluar$i"} ?? 0,
|
'PENDAPATAN'
|
||||||
$pendapatan,
|
);
|
||||||
$beban
|
} elseif ($accountType === 'BEBAN') {
|
||||||
);
|
$totalBeban = $this->calculateBalance(
|
||||||
|
$totalBeban,
|
||||||
// Tambahkan ke total
|
floatval($transaksi->$uangMasukField ?? 0),
|
||||||
$totalUangMasuk += $transaksi->{"uang_masuk$i"} ?? 0;
|
floatval($transaksi->$uangKeluarField ?? 0),
|
||||||
$totalUangKeluar += $transaksi->{"uang_keluar$i"} ?? 0;
|
'BEBAN'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate current month totals
|
// Hitung laba rugi
|
||||||
$currentMonthUangMasuk = $totalUangMasuk;
|
$labaRugiTotal = $totalPendapatan - $totalBeban;
|
||||||
$currentMonthUangKeluar = $totalUangKeluar;
|
$labaRugiBulanIni = $labaRugiTotal;
|
||||||
|
|
||||||
// Calculate last month totals for growth percentage
|
// Kelompokkan data untuk tampilan
|
||||||
$lastMonthStart = Carbon::parse($startDate)->subMonth()->startOfMonth();
|
$pendapatan = [];
|
||||||
$lastMonthEnd = Carbon::parse($startDate)->subMonth()->endOfMonth();
|
$beban = [];
|
||||||
|
foreach ($totalsPerAkun as $kategori => $data) {
|
||||||
$lastMonthTransaksis = DB::table('laporan_transaksis')
|
$accountType = $this->getAccountType($data['kode']);
|
||||||
->whereBetween('Tanggal', [$lastMonthStart, $lastMonthEnd])
|
if ($accountType === 'PENDAPATAN') {
|
||||||
->get();
|
$pendapatan[$kategori] = [
|
||||||
|
'kategori' => $kategori,
|
||||||
$lastMonthUangMasuk = 0;
|
'kode_akun' => $data['kode'],
|
||||||
$lastMonthUangKeluar = 0;
|
'nominal' => $this->calculateBalance(0, $data['debit'], $data['kredit'], 'PENDAPATAN')
|
||||||
|
];
|
||||||
foreach ($lastMonthTransaksis as $transaksi) {
|
} elseif ($accountType === 'BEBAN') {
|
||||||
$lastMonthUangMasuk += $transaksi->uang_masuk ?? 0;
|
$beban[$kategori] = [
|
||||||
$lastMonthUangKeluar += $transaksi->uang_keluar ?? 0;
|
'kategori' => $kategori,
|
||||||
|
'kode_akun' => $data['kode'],
|
||||||
for ($i = 2; $i <= 5; $i++) {
|
'nominal' => $this->calculateBalance(0, $data['debit'], $data['kredit'], 'BEBAN')
|
||||||
$lastMonthUangMasuk += $transaksi->{"uang_masuk$i"} ?? 0;
|
];
|
||||||
$lastMonthUangKeluar += $transaksi->{"uang_keluar$i"} ?? 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$lastMonthTotal = $lastMonthUangMasuk - $lastMonthUangKeluar;
|
// Get monthly totals for chart
|
||||||
$currentMonthTotal = $totalUangMasuk - $totalUangKeluar;
|
$monthlyTotals = DB::table('laporan_transaksis')
|
||||||
|
->select(
|
||||||
|
DB::raw('DATE_FORMAT(Tanggal, "%Y-%m") as periode'),
|
||||||
|
DB::raw('SUM(CASE WHEN LEFT(kategori, 3) IN ("241", "242") THEN uang_masuk ELSE 0 END) as total_debit'),
|
||||||
|
DB::raw('SUM(CASE WHEN LEFT(kategori, 3) IN ("251", "252") THEN uang_keluar ELSE 0 END) as total_kredit')
|
||||||
|
)
|
||||||
|
->groupBy('periode')
|
||||||
|
->orderBy('periode')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
// Get category totals for distribution chart
|
||||||
|
$categoryTotals = DB::table('laporan_transaksis')
|
||||||
|
->select(
|
||||||
|
'kategori',
|
||||||
|
DB::raw('SUM(CASE WHEN LEFT(kategori, 3) IN ("241", "242") THEN uang_masuk ELSE 0 END) as total_debit'),
|
||||||
|
DB::raw('SUM(CASE WHEN LEFT(kategori, 3) IN ("251", "252") THEN uang_keluar ELSE 0 END) as total_kredit')
|
||||||
|
)
|
||||||
|
->whereBetween('Tanggal', [$startDate, $endDate])
|
||||||
|
->whereNotNull('kategori')
|
||||||
|
->groupBy('kategori')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
// Get recent transactions
|
||||||
|
$recentTransactions = DB::table('laporan_transaksis')
|
||||||
|
->orderBy('Tanggal', 'desc')
|
||||||
|
->limit(10)
|
||||||
|
->get();
|
||||||
|
|
||||||
// Calculate growth percentage
|
// Calculate growth percentage
|
||||||
$growthPercentage = $lastMonthTotal != 0 ?
|
$lastMonthStart = Carbon::parse($startDate)->subMonth()->startOfMonth();
|
||||||
(($currentMonthTotal - $lastMonthTotal) / abs($lastMonthTotal)) * 100 :
|
$lastMonthEnd = Carbon::parse($startDate)->subMonth()->endOfMonth();
|
||||||
|
|
||||||
|
$lastMonthData = DB::table('laporan_transaksis')
|
||||||
|
->whereBetween('Tanggal', [$lastMonthStart, $lastMonthEnd])
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$lastMonthPendapatan = 0;
|
||||||
|
$lastMonthBeban = 0;
|
||||||
|
|
||||||
|
foreach ($lastMonthData as $transaksi) {
|
||||||
|
$kodeAkun = $this->getKodeAkun($transaksi->kategori);
|
||||||
|
if ($kodeAkun) {
|
||||||
|
$accountType = $this->getAccountType($kodeAkun);
|
||||||
|
if ($accountType === 'PENDAPATAN') {
|
||||||
|
$lastMonthPendapatan = $this->calculateBalance(
|
||||||
|
$lastMonthPendapatan,
|
||||||
|
floatval($transaksi->uang_masuk ?? 0),
|
||||||
|
floatval($transaksi->uang_keluar ?? 0),
|
||||||
|
'PENDAPATAN'
|
||||||
|
);
|
||||||
|
} elseif ($accountType === 'BEBAN') {
|
||||||
|
$lastMonthBeban = $this->calculateBalance(
|
||||||
|
$lastMonthBeban,
|
||||||
|
floatval($transaksi->uang_masuk ?? 0),
|
||||||
|
floatval($transaksi->uang_keluar ?? 0),
|
||||||
|
'BEBAN'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$lastMonthLabaRugi = $lastMonthPendapatan - $lastMonthBeban;
|
||||||
|
$currentMonthLabaRugi = $labaRugiBulanIni;
|
||||||
|
|
||||||
|
$growthPercentage = $lastMonthLabaRugi != 0 ?
|
||||||
|
(($currentMonthLabaRugi - $lastMonthLabaRugi) / abs($lastMonthLabaRugi)) * 100 :
|
||||||
100;
|
100;
|
||||||
|
|
||||||
// Calculate total saldo dan laba rugi sesuai format di Labarugi blade
|
return view('home', compact(
|
||||||
$totalSaldo = -($totalUangMasuk) - $totalUangKeluar;
|
|
||||||
$labaRugiTotal = -($totalUangMasuk) - $totalUangKeluar;
|
|
||||||
$labaRugiBulanIni = -($currentMonthUangMasuk) - $currentMonthUangKeluar;
|
|
||||||
|
|
||||||
// Get category breakdown
|
|
||||||
$categoryTotals = collect($pendapatan)->map(function($item) {
|
|
||||||
return [
|
|
||||||
'kategori' => $item['kategori'],
|
|
||||||
'total_debit' => $item['nominal'],
|
|
||||||
'total_kredit' => 0
|
|
||||||
];
|
|
||||||
})->merge(
|
|
||||||
collect($beban)->map(function($item) {
|
|
||||||
return [
|
|
||||||
'kategori' => $item['kategori'],
|
|
||||||
'total_debit' => 0,
|
|
||||||
'total_kredit' => $item['nominal']
|
|
||||||
];
|
|
||||||
})
|
|
||||||
)->values();
|
|
||||||
|
|
||||||
// Get monthly totals for chart
|
|
||||||
$monthlyTotals = DB::table('laporan_transaksis')
|
|
||||||
->select(
|
|
||||||
DB::raw('DATE_FORMAT(Tanggal, "%Y-%m") as periode'),
|
|
||||||
DB::raw('SUM(uang_masuk) + SUM(COALESCE(uang_masuk2, 0)) + SUM(COALESCE(uang_masuk3, 0)) + SUM(COALESCE(uang_masuk4, 0)) + SUM(COALESCE(uang_masuk5, 0)) as total_debit'),
|
|
||||||
DB::raw('SUM(uang_keluar) + SUM(COALESCE(uang_keluar2, 0)) + SUM(COALESCE(uang_keluar3, 0)) + SUM(COALESCE(uang_keluar4, 0)) + SUM(COALESCE(uang_keluar5, 0)) as total_kredit')
|
|
||||||
)
|
|
||||||
->groupBy('periode')
|
|
||||||
->orderBy('periode')
|
|
||||||
->get();
|
|
||||||
|
|
||||||
// Get recent transactions
|
|
||||||
$recentTransactions = DB::table('laporan_transaksis')
|
|
||||||
->orderBy('Tanggal', 'desc')
|
|
||||||
->limit(10)
|
|
||||||
->get();
|
|
||||||
|
|
||||||
// Debug log untuk memeriksa nilai
|
|
||||||
Log::info("Total Uang Masuk: " . $totalUangMasuk);
|
|
||||||
Log::info("Total Uang Keluar: " . $totalUangKeluar);
|
|
||||||
Log::info("Total Saldo: " . $totalSaldo);
|
|
||||||
Log::info("Laba Rugi Total: " . $labaRugiTotal);
|
|
||||||
Log::info("Laba Rugi Bulan Ini: " . $labaRugiBulanIni);
|
|
||||||
|
|
||||||
return view('home', compact(
|
|
||||||
'startDate',
|
'startDate',
|
||||||
'endDate',
|
'endDate',
|
||||||
'totalUangMasuk',
|
'totalPendapatan',
|
||||||
'totalUangKeluar',
|
'totalBeban',
|
||||||
'currentMonthUangMasuk',
|
|
||||||
'currentMonthUangKeluar',
|
|
||||||
'totalSaldo',
|
|
||||||
'growthPercentage',
|
|
||||||
'labaRugiTotal',
|
'labaRugiTotal',
|
||||||
'labaRugiBulanIni',
|
'labaRugiBulanIni',
|
||||||
'monthlyTotals',
|
'growthPercentage',
|
||||||
'categoryTotals',
|
'monthlyTotals',
|
||||||
|
'categoryTotals',
|
||||||
'recentTransactions',
|
'recentTransactions',
|
||||||
'pendapatan',
|
'pendapatan',
|
||||||
'beban'
|
'beban'
|
||||||
|
|
|
@ -157,7 +157,7 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ route('rekening.index') }}" class="block px-4 py-2 text-white hover:bg-blue-700">
|
<a href="{{ route('rekening.index') }}" class="block px-4 py-2 text-white hover:bg-blue-700">
|
||||||
Rekening
|
Buku Besar
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -165,6 +165,11 @@
|
||||||
Neraca Saldo
|
Neraca Saldo
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ route('labarugi.index') }}" class="block px-4 py-2 text-white hover:bg-blue-700">
|
||||||
|
Laporan Laba Rugi
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="mb-4">
|
<li class="mb-4">
|
||||||
|
|
|
@ -8,6 +8,11 @@
|
||||||
<p class="text-sm mt-1">Tabel keterangan gaji karyawan</p>
|
<p class="text-sm mt-1">Tabel keterangan gaji karyawan</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- SweetAlert2 CSS -->
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
|
||||||
|
<!-- SweetAlert2 JS -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|
||||||
<div class="bg-white rounded-lg shadow-lg p-6">
|
<div class="bg-white rounded-lg shadow-lg p-6">
|
||||||
<!-- Tombol Tambah dan Filter dalam satu baris -->
|
<!-- Tombol Tambah dan Filter dalam satu baris -->
|
||||||
<div class="flex justify-between items-center mb-4">
|
<div class="flex justify-between items-center mb-4">
|
||||||
|
@ -100,6 +105,25 @@ class="text-red-600 hover:text-red-800"
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// Notifikasi SweetAlert2
|
||||||
|
@if(session('success'))
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'success',
|
||||||
|
title: 'Berhasil!',
|
||||||
|
text: '{{ session('success') }}',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if(session('error'))
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal!',
|
||||||
|
text: '{{ session('error') }}',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
@endif
|
||||||
|
|
||||||
function filterTable() {
|
function filterTable() {
|
||||||
const input = document.getElementById('filterKeterangan');
|
const input = document.getElementById('filterKeterangan');
|
||||||
const filter = input.value.toLowerCase();
|
const filter = input.value.toLowerCase();
|
||||||
|
@ -116,25 +140,55 @@ function filterTable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteGaji(id) {
|
function deleteGaji(id) {
|
||||||
if (confirm('Apakah Anda yakin ingin menghapus data ini?')) {
|
Swal.fire({
|
||||||
fetch(`/gaji/${id}`, {
|
title: 'Apakah Anda yakin?',
|
||||||
method: 'DELETE',
|
text: "Data yang dihapus tidak dapat dikembalikan!",
|
||||||
headers: {
|
icon: 'warning',
|
||||||
'X-CSRF-TOKEN': '{{ csrf_token() }}',
|
showCancelButton: true,
|
||||||
'Content-Type': 'application/json'
|
confirmButtonColor: '#3085d6',
|
||||||
},
|
cancelButtonColor: '#d33',
|
||||||
})
|
confirmButtonText: 'Ya, hapus!',
|
||||||
.then(response => response.json())
|
cancelButtonText: 'Batal'
|
||||||
.then(data => {
|
}).then((result) => {
|
||||||
if (data.success) {
|
if (result.isConfirmed) {
|
||||||
window.location.reload();
|
fetch(`/gaji/${id}`, {
|
||||||
}
|
method: 'DELETE',
|
||||||
})
|
headers: {
|
||||||
.catch(error => {
|
'X-CSRF-TOKEN': '{{ csrf_token() }}',
|
||||||
console.error('Error:', error);
|
'Content-Type': 'application/json'
|
||||||
alert('Terjadi kesalahan saat menghapus data');
|
},
|
||||||
});
|
})
|
||||||
}
|
.then(response => response.json())
|
||||||
|
.then(data => {
|
||||||
|
if (data.success) {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'success',
|
||||||
|
title: 'Berhasil!',
|
||||||
|
text: 'Data gaji berhasil dihapus',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
}).then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal!',
|
||||||
|
text: 'Gagal menghapus data gaji',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error('Error:', error);
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal!',
|
||||||
|
text: 'Terjadi kesalahan saat menghapus data',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,17 @@
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="p-6 animate-fade-in">
|
<div class="p-6 animate-fade-in">
|
||||||
|
<!-- SweetAlert2 CSS -->
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
|
||||||
|
<!-- SweetAlert2 JS -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
|
|
||||||
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
||||||
<h1 class="text-2xl font-bold">Edit Gaji Karyawan</h1>
|
<h1 class="text-2xl font-bold">Edit Gaji Karyawan</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white rounded-lg shadow-lg p-6">
|
<div class="bg-white rounded-lg shadow-lg p-6">
|
||||||
<form action="{{ route('gaji.update', $karyawan->id) }}" method="POST">
|
<form id="editGajiForm" action="{{ route('gaji.update', $karyawan->id) }}" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
@method('PUT')
|
@method('PUT')
|
||||||
|
|
||||||
|
@ -31,8 +36,12 @@ class="border rounded w-full py-2 px-3" required>
|
||||||
|
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<label class="block text-gray-700 text-sm font-bold mb-2">Gaji</label>
|
<label class="block text-gray-700 text-sm font-bold mb-2">Gaji</label>
|
||||||
<input type="number" name="gaji" value="{{ $karyawan->gaji }}"
|
<div class="relative">
|
||||||
class="border rounded w-full py-2 px-3" required>
|
<span class="absolute left-3 top-2 text-gray-600">Rp</span>
|
||||||
|
<input type="text" name="gaji" value="{{ number_format($karyawan->gaji, 0, ',', '.') }}"
|
||||||
|
class="border rounded w-full py-2 pl-10 pr-3" required
|
||||||
|
oninput="formatNumber(this)">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex justify-end">
|
<div class="flex justify-end">
|
||||||
|
@ -47,4 +56,61 @@ class="bg-gray-500 text-white px-4 py-2 rounded mr-2">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Notifikasi SweetAlert2
|
||||||
|
@if(session('success'))
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'success',
|
||||||
|
title: 'Berhasil!',
|
||||||
|
text: '{{ session('success') }}',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if(session('error'))
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal!',
|
||||||
|
text: '{{ session('error') }}',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
@endif
|
||||||
|
|
||||||
|
function formatNumber(input) {
|
||||||
|
// Hapus semua karakter non-digit
|
||||||
|
let value = input.value.replace(/\D/g, '');
|
||||||
|
|
||||||
|
// Format angka dengan pemisah ribuan
|
||||||
|
if (value !== '') {
|
||||||
|
value = new Intl.NumberFormat('id-ID').format(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
input.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Form submission handling
|
||||||
|
document.getElementById('editGajiForm').addEventListener('submit', function(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
// Validasi form di sini jika diperlukan
|
||||||
|
const nama = document.querySelector('input[name="nama"]').value;
|
||||||
|
const usia = document.querySelector('input[name="usia"]').value;
|
||||||
|
const jabatan = document.querySelector('input[name="jabatan"]').value;
|
||||||
|
const gaji = document.querySelector('input[name="gaji"]').value;
|
||||||
|
|
||||||
|
if (!nama || !usia || !jabatan || !gaji) {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Error!',
|
||||||
|
text: 'Semua field harus diisi!',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Submit form jika validasi berhasil
|
||||||
|
this.submit();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@endsection
|
@endsection
|
|
@ -29,25 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Main Metrics -->
|
<!-- Main Metrics -->
|
||||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
|
<div class="grid grid-cols-2 gap-4 mb-6">
|
||||||
<!-- Total Saldo Card -->
|
|
||||||
<!-- <div class="bg-white rounded-xl p-6 shadow-sm">
|
|
||||||
<div class="flex items-center">
|
|
||||||
<div class="w-12 h-12 rounded-lg bg-indigo-100 flex items-center justify-center me-3">
|
|
||||||
<svg class="w-6 h-6 text-indigo-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<p class="text-sm text-gray-500 mb-1">Total Saldo</p>
|
|
||||||
<h3 class="text-2xl font-bold text-gray-800">Rp {{ number_format($totalSaldo, 0, ',', '.') }}</h3>
|
|
||||||
<p class="text-sm {{ $growthPercentage >= 0 ? 'text-green-500' : 'text-red-500' }}">
|
|
||||||
{{ $growthPercentage >= 0 ? '↑' : '↓' }} {{ abs(round($growthPercentage, 1)) }}% dari bulan lalu
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
<!-- Total Pendapatan Card -->
|
<!-- Total Pendapatan Card -->
|
||||||
<div class="bg-white rounded-xl p-6 shadow-sm">
|
<div class="bg-white rounded-xl p-6 shadow-sm">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
|
@ -58,7 +40,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="text-sm text-gray-500 mb-1">Total Pendapatan</p>
|
<p class="text-sm text-gray-500 mb-1">Total Pendapatan</p>
|
||||||
<h3 class="text-2xl font-bold text-gray-800">Rp {{ number_format($totalUangMasuk, 0, ',', '.') }}</h3>
|
<h3 class="text-2xl font-bold text-gray-800">
|
||||||
|
@if($totalPendapatan < 0)
|
||||||
|
-Rp {{ number_format(abs($totalPendapatan), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($totalPendapatan, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
|
</h3>
|
||||||
<p class="text-sm text-gray-500">Periode: {{ date('d/m/Y', strtotime($startDate)) }} - {{ date('d/m/Y', strtotime($endDate)) }}</p>
|
<p class="text-sm text-gray-500">Periode: {{ date('d/m/Y', strtotime($startDate)) }} - {{ date('d/m/Y', strtotime($endDate)) }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -74,7 +62,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<p class="text-sm text-gray-500 mb-1">Total Beban</p>
|
<p class="text-sm text-gray-500 mb-1">Total Beban</p>
|
||||||
<h3 class="text-2xl font-bold text-gray-800">Rp {{ number_format($totalUangKeluar, 0, ',', '.') }}</h3>
|
<h3 class="text-2xl font-bold text-gray-800">
|
||||||
|
@if($totalBeban < 0)
|
||||||
|
-Rp {{ number_format(abs($totalBeban), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($totalBeban, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
|
</h3>
|
||||||
<p class="text-sm text-gray-500">Periode: {{ date('d/m/Y', strtotime($startDate)) }} - {{ date('d/m/Y', strtotime($endDate)) }}</p>
|
<p class="text-sm text-gray-500">Periode: {{ date('d/m/Y', strtotime($startDate)) }} - {{ date('d/m/Y', strtotime($endDate)) }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -92,13 +86,25 @@
|
||||||
<span class="text-sm text-gray-600">{{ ucwords($item['kategori']) }}</span>
|
<span class="text-sm text-gray-600">{{ ucwords($item['kategori']) }}</span>
|
||||||
<span class="text-xs text-gray-400 ml-2">({{ $item['kode_akun'] }})</span>
|
<span class="text-xs text-gray-400 ml-2">({{ $item['kode_akun'] }})</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-sm font-medium text-green-600">Rp {{ number_format(abs($item['nominal']), 0, ',', '.') }}</span>
|
<span class="text-sm font-medium {{ $item['nominal'] < 0 ? 'text-red-600' : 'text-green-600' }}">
|
||||||
|
@if($item['nominal'] < 0)
|
||||||
|
-Rp {{ number_format(abs($item['nominal']), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($item['nominal'], 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
<div class="mt-4 pt-4 border-t">
|
<div class="mt-4 pt-4 border-t">
|
||||||
<div class="flex justify-between items-center">
|
<div class="flex justify-between items-center">
|
||||||
<span class="font-semibold">Total Pendapatan</span>
|
<span class="font-semibold">Total Pendapatan</span>
|
||||||
<span class="font-semibold text-green-600">Rp {{ number_format($totalUangMasuk, 0, ',', '.') }}</span>
|
<span class="font-semibold {{ $totalPendapatan < 0 ? 'text-red-600' : 'text-green-600' }}">
|
||||||
|
@if($totalPendapatan < 0)
|
||||||
|
-Rp {{ number_format(abs($totalPendapatan), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($totalPendapatan, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -112,13 +118,25 @@
|
||||||
<span class="text-sm text-gray-600">{{ ucwords($item['kategori']) }}</span>
|
<span class="text-sm text-gray-600">{{ ucwords($item['kategori']) }}</span>
|
||||||
<span class="text-xs text-gray-400 ml-2">({{ $item['kode_akun'] }})</span>
|
<span class="text-xs text-gray-400 ml-2">({{ $item['kode_akun'] }})</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="text-sm font-medium text-red-600">Rp {{ number_format(abs($item['nominal']), 0, ',', '.') }}</span>
|
<span class="text-sm font-medium {{ $item['nominal'] < 0 ? 'text-green-600' : 'text-red-600' }}">
|
||||||
|
@if($item['nominal'] < 0)
|
||||||
|
-Rp {{ number_format(abs($item['nominal']), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($item['nominal'], 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
<div class="mt-4 pt-4 border-t">
|
<div class="mt-4 pt-4 border-t">
|
||||||
<div class="flex justify-between items-center">
|
<div class="flex justify-between items-center">
|
||||||
<span class="font-semibold">Total Beban</span>
|
<span class="font-semibold">Total Beban</span>
|
||||||
<span class="font-semibold text-red-600">Rp {{ number_format($totalUangKeluar, 0, ',', '.') }}</span>
|
<span class="font-semibold {{ $totalBeban < 0 ? 'text-green-600' : 'text-red-600' }}">
|
||||||
|
@if($totalBeban < 0)
|
||||||
|
-Rp {{ number_format(abs($totalBeban), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($totalBeban, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -137,7 +155,11 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-2xl font-bold {{ $labaRugiTotal >= 0 ? 'text-green-600' : 'text-red-600' }}">
|
<h3 class="text-2xl font-bold {{ $labaRugiTotal >= 0 ? 'text-green-600' : 'text-red-600' }}">
|
||||||
Rp {{ number_format(abs($labaRugiTotal), 0, ',', '.') }}
|
@if($labaRugiTotal < 0)
|
||||||
|
-Rp {{ number_format(abs($labaRugiTotal), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($labaRugiTotal, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-sm text-gray-500">{{ $labaRugiTotal >= 0 ? 'Laba' : 'Rugi' }}</p>
|
<p class="text-sm text-gray-500">{{ $labaRugiTotal >= 0 ? 'Laba' : 'Rugi' }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -155,7 +177,11 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h3 class="text-2xl font-bold {{ $labaRugiBulanIni >= 0 ? 'text-green-600' : 'text-red-600' }}">
|
<h3 class="text-2xl font-bold {{ $labaRugiBulanIni >= 0 ? 'text-green-600' : 'text-red-600' }}">
|
||||||
Rp {{ number_format(abs($labaRugiBulanIni), 0, ',', '.') }}
|
@if($labaRugiBulanIni < 0)
|
||||||
|
-Rp {{ number_format(abs($labaRugiBulanIni), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($labaRugiBulanIni, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
</h3>
|
</h3>
|
||||||
<p class="text-sm text-gray-500">{{ $labaRugiBulanIni >= 0 ? 'Laba' : 'Rugi' }}</p>
|
<p class="text-sm text-gray-500">{{ $labaRugiBulanIni >= 0 ? 'Laba' : 'Rugi' }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
||||||
<h1 class="text-2xl font-bold">Laporan Laba Rugi</h1>
|
<h1 class="text-2xl font-bold">Laporan Laba Rugi</h1>
|
||||||
<p class="text-sm mt-1">PT EXAMPLE</p>
|
<p class="text-sm mt-1">Budivespaendut</p>
|
||||||
<p class="text-sm">Periode: {{ date('F Y', strtotime($startDate)) }}</p>
|
<p class="text-sm">Periode: {{ date('F Y', strtotime($startDate)) }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -92,7 +92,14 @@
|
||||||
<tr class="bg-purple-100">
|
<tr class="bg-purple-100">
|
||||||
<td class="p-2 border border-gray-300 font-bold">Laba/Rugi Bersih</td>
|
<td class="p-2 border border-gray-300 font-bold">Laba/Rugi Bersih</td>
|
||||||
<td class="text-right p-2 border border-gray-300 font-bold">
|
<td class="text-right p-2 border border-gray-300 font-bold">
|
||||||
{{ number_format(-($total_pendapatan) - $total_beban, 0, ',', '.') }}
|
@php
|
||||||
|
$labaRugi = -($total_pendapatan) - $total_beban;
|
||||||
|
@endphp
|
||||||
|
@if($labaRugi < 0)
|
||||||
|
-Rp {{ number_format(abs($labaRugi), 0, ',', '.') }}
|
||||||
|
@else
|
||||||
|
Rp {{ number_format($labaRugi, 0, ',', '.') }}
|
||||||
|
@endif
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
||||||
<h1 class="text-2xl font-bold">Jurnal Umum</h1>
|
<h1 class="text-2xl font-bold">Jurnal Umum</h1>
|
||||||
<p class="text-sm mt-1">Halaman ini menampilkan jurnal umum.</p>
|
<p class="text-sm mt-1">jurnal umum Budivespaendut.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Summary Cards
|
<!-- Summary Cards
|
||||||
|
@ -200,18 +200,22 @@
|
||||||
</td>
|
</td>
|
||||||
<td class="py-3 px-4">
|
<td class="py-3 px-4">
|
||||||
<div class="flex flex-col">
|
<div class="flex flex-col">
|
||||||
<span>{{ $item->kategori }}</span>
|
@if($item->uang_masuk > 0)
|
||||||
|
<span>{{ $item->kategori }}</span>
|
||||||
|
@else
|
||||||
|
<span class="ml-8">{{ $item->kategori }}</span>
|
||||||
|
@endif
|
||||||
@if(isset($item->kategori2))
|
@if(isset($item->kategori2))
|
||||||
<span class="text-sm text-gray-500">{{ $item->kategori2 }}</span>
|
<span class="text-sm text-gray-500 ml-8">{{ $item->kategori2 }}</span>
|
||||||
@endif
|
@endif
|
||||||
@if(isset($item->kategori3))
|
@if(isset($item->kategori3))
|
||||||
<span class="text-sm text-gray-500">{{ $item->kategori3 }}</span>
|
<span class="text-sm text-gray-500 ml-8">{{ $item->kategori3 }}</span>
|
||||||
@endif
|
@endif
|
||||||
@if(isset($item->kategori4))
|
@if(isset($item->kategori4))
|
||||||
<span class="text-sm text-gray-500">{{ $item->kategori4 }}</span>
|
<span class="text-sm text-gray-500 ml-8">{{ $item->kategori4 }}</span>
|
||||||
@endif
|
@endif
|
||||||
@if(isset($item->kategori5))
|
@if(isset($item->kategori5))
|
||||||
<span class="text-sm text-gray-500">{{ $item->kategori5 }}</span>
|
<span class="text-sm text-gray-500 ml-8">{{ $item->kategori5 }}</span>
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
@ -292,8 +296,8 @@
|
||||||
</td>
|
</td>
|
||||||
<td class="py-3 px-4 text-center">
|
<td class="py-3 px-4 text-center">
|
||||||
<div class="flex justify-center space-x-2">
|
<div class="flex justify-center space-x-2">
|
||||||
<button class="text-blue-600 hover:text-blue-800" title="Edit">
|
<!-- <button class="text-blue-600 hover:text-blue-800" title="Edit">
|
||||||
<i class="fas fa-edit"></i>
|
<i class="fas fa-edit"></i> -->
|
||||||
</button>
|
</button>
|
||||||
<button onclick="hapusData({{ $item->id }})" class="text-red-600 hover:text-red-800" title="Hapus">
|
<button onclick="hapusData({{ $item->id }})" class="text-red-600 hover:text-red-800" title="Hapus">
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
|
|
|
@ -14,8 +14,8 @@
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
<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>
|
<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 mt-1">Neraca Saldo Budivespaendut</p>
|
||||||
<p class="text-sm">Anggrek</p>
|
<p class="text-sm">Kebun Anggrek</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Tabel Transaksi -->
|
<!-- Tabel Transaksi -->
|
||||||
|
|
|
@ -53,8 +53,8 @@ function calculateBalancePHP($previousBalance, $debit, $kredit, $accountType) {
|
||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
<div class="mb-4 bg-blue-600 text-white p-4 rounded-lg shadow-md">
|
||||||
<h1 class="text-2xl font-bold">Buku Besar Perusahaan Dagang</h1>
|
<h1 class="text-2xl font-bold">Buku Besar Perusahaan Dagang</h1>
|
||||||
<p class="text-sm mt-1">Entri Jurnal Umum Budivespaendut</p>
|
<p class="text-sm mt-1">Buku Besar Budivespaendut</p>
|
||||||
<p class="text-sm">Anggrek</p>
|
<p class="text-sm">Kebun Anggrek</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@foreach($groupedLaporan as $kategori => $items)
|
@foreach($groupedLaporan as $kategori => $items)
|
||||||
|
@ -86,7 +86,7 @@ function calculateBalancePHP($previousBalance, $debit, $kredit, $accountType) {
|
||||||
<th class="py-3 px-4 text-right">Debit (Rp)</th>
|
<th class="py-3 px-4 text-right">Debit (Rp)</th>
|
||||||
<th class="py-3 px-4 text-right">Kredit (Rp)</th>
|
<th class="py-3 px-4 text-right">Kredit (Rp)</th>
|
||||||
<th class="py-3 px-4 text-right">Saldo</th>
|
<th class="py-3 px-4 text-right">Saldo</th>
|
||||||
<th class="py-3 px-4 text-center">Aksi</th>
|
<!-- <th class="py-3 px-4 text-center">Aksi</th> -->
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -120,7 +120,7 @@ function calculateBalancePHP($previousBalance, $debit, $kredit, $accountType) {
|
||||||
@endphp
|
@endphp
|
||||||
{{ $displayBalance }}
|
{{ $displayBalance }}
|
||||||
</td>
|
</td>
|
||||||
<td class="py-3 px-4 text-center">
|
<!-- <td class="py-3 px-4 text-center">
|
||||||
<div class="flex justify-center space-x-2">
|
<div class="flex justify-center space-x-2">
|
||||||
<button class="text-blue-600 hover:text-blue-800" title="Edit">
|
<button class="text-blue-600 hover:text-blue-800" title="Edit">
|
||||||
<i class="fas fa-edit"></i>
|
<i class="fas fa-edit"></i>
|
||||||
|
@ -129,7 +129,7 @@ function calculateBalancePHP($previousBalance, $debit, $kredit, $accountType) {
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td> -->
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
@extends('Core.Sidebar')
|
@extends('Core.Sidebar')
|
||||||
@section('content')
|
@section('content')
|
||||||
<title>Data Akun User</title>
|
<title>Data Akun User</title>
|
||||||
<!-- ... existing code ... -->
|
<!-- SweetAlert2 CSS -->
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css">
|
||||||
|
<!-- SweetAlert2 JS -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
<style>
|
<style>
|
||||||
/* Gradient Background */
|
/* Gradient Background */
|
||||||
body {
|
body {
|
||||||
|
@ -191,6 +194,25 @@
|
||||||
|
|
||||||
<!-- JavaScript for handling user CRUD operations -->
|
<!-- JavaScript for handling user CRUD operations -->
|
||||||
<script>
|
<script>
|
||||||
|
// Notifikasi SweetAlert2
|
||||||
|
@if(session('success'))
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'success',
|
||||||
|
title: 'Berhasil!',
|
||||||
|
text: '{{ session('success') }}',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if(session('error'))
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal!',
|
||||||
|
text: '{{ session('error') }}',
|
||||||
|
confirmButtonText: 'OK'
|
||||||
|
});
|
||||||
|
@endif
|
||||||
|
|
||||||
// Function to load users
|
// Function to load users
|
||||||
function loadUsers() {
|
function loadUsers() {
|
||||||
fetch('/users/data')
|
fetch('/users/data')
|
||||||
|
@ -237,6 +259,42 @@ function editUser(id) {
|
||||||
window.location.href = "{{ route('User.create') }}";
|
window.location.href = "{{ route('User.create') }}";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Function untuk menghapus user
|
||||||
|
function deleteUser(id) {
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Apakah Anda yakin?',
|
||||||
|
text: "Data yang dihapus tidak dapat dikembalikan!",
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Ya, hapus!',
|
||||||
|
cancelButtonText: 'Batal'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
// Buat form untuk delete request
|
||||||
|
const form = document.createElement('form');
|
||||||
|
form.method = 'POST';
|
||||||
|
form.action = `/User/${id}`;
|
||||||
|
|
||||||
|
const csrfToken = document.createElement('input');
|
||||||
|
csrfToken.type = 'hidden';
|
||||||
|
csrfToken.name = '_token';
|
||||||
|
csrfToken.value = '{{ csrf_token() }}';
|
||||||
|
|
||||||
|
const methodField = document.createElement('input');
|
||||||
|
methodField.type = 'hidden';
|
||||||
|
methodField.name = '_method';
|
||||||
|
methodField.value = 'DELETE';
|
||||||
|
|
||||||
|
form.appendChild(csrfToken);
|
||||||
|
form.appendChild(methodField);
|
||||||
|
document.body.appendChild(form);
|
||||||
|
form.submit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Initial load
|
// Initial load
|
||||||
loadUsers();
|
loadUsers();
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue