NIM_E31220400/resources/views/transaksi/pengeluaran/index.blade.php

149 lines
6.4 KiB
PHP

@extends('layouts.app')
@php use Illuminate\Support\Str; @endphp
@section('content')
<!-- Background seluruh halaman -->
<div style="background-color: #e0e0e0; width: 100%; min-height: 100vh; border-radius: 15px; padding: 1rem;">
<!-- Header -->
<div style="background-color: #000; color: #fff; padding: 0.1rem; border-radius: 0.5rem;">
<h1 class="m-0">Pengeluaran</h1>
</div>
<!-- Konten utama -->
<div class="container mt-4">
<div class="card p-4 border border-secondary" style="border-radius: 15px; background-color: #fff;">
<div class="d-flex justify-content-between mb-3">
<a href="{{ route('dashboard') }}" class="btn btn-secondary">Kembali</a>
<a href="{{ route('pengeluaran.create') }}" class="btn btn-primary">Tambah Pengeluaran</a>
</div>
<!-- Filter waktu -->
<form method="GET" action="{{ route('pengeluaran.index') }}" class="mb-4">
<div class="row g-2">
<div class="col-md-3">
<select name="filter" class="form-control">
<option value="">-- Filter Waktu --</option>
<option value="hari" {{ request('filter') == 'hari' ? 'selected' : '' }}>Hari Ini</option>
<option value="minggu" {{ request('filter') == 'minggu' ? 'selected' : '' }}>Minggu Ini</option>
<option value="bulan" {{ request('filter') == 'bulan' ? 'selected' : '' }}>Bulan Ini</option>
<option value="tahun" {{ request('filter') == 'tahun' ? 'selected' : '' }}>Tahun Ini</option>
</select>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-success">Terapkan</button>
</div>
</div>
</form>
<div class="table-responsive">
<table class="table table-bordered table-hover mb-0">
<thead>
<tr>
<th>No</th>
<th>Tanggal</th>
<th>Nama</th>
<th>Kategori</th>
<th>Quantity</th>
<th>Harga Satuan</th>
<th>Jumlah</th>
<th>Keterangan</th>
<th>Upload Kuitansi</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
@forelse($pengeluarans as $index => $item)
<tr>
<td>{{ $index + 1 }}</td>
<td>{{ \Carbon\Carbon::parse($item->tanggal)->format('d-m-Y') }}</td>
<td>{{ $item->nama }}</td>
<td>{{ ucfirst($item->kategori) }}</td>
<td class="text-center">{{ $item->kategori === 'barang' ? $item->quantity : '-' }}</td>
<td class="text-end">
@if($item->kategori === 'barang' && $item->harga)
Rp {{ number_format($item->harga, 0, ',', '.') }}
@else
-
@endif
</td>
<td class="text-end">
@if($item->kategori === 'uang')
Rp {{ number_format($item->jumlah, 0, ',', '.') }}
@elseif($item->kategori === 'barang')
Rp {{ number_format(($item->harga ?? 0) * ($item->quantity ?? 0), 0, ',', '.') }}
@else
-
@endif
</td>
<td>{{ $item->keterangan ?? '-' }}</td>
{{-- Upload Kuitansi --}}
<td class="text-center">
@if ($item->bukti)
<img src="{{ asset('storage/bukti_pengeluaran/' . $item->bukti) }}"
alt="Bukti Kuitansi" class="img-thumbnail" style="max-height: 80px;">
@else
<span class="text-muted">-</span>
@endif
</td>
</td>
<!-- Aksi -->
<td class="text-center">
<a href="{{ route('pengeluaran.edit', $item->id) }}" class="btn btn-sm btn-warning mb-1" title="Edit">✏️</a>
<form action="{{ route('pengeluaran.destroy', $item->id) }}" method="POST" onsubmit="return confirm('Hapus data ini?')" style="display:inline;">
@csrf
@method('DELETE')
<button class="btn btn-sm btn-danger" title="Hapus">🗑️</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="10" class="text-center">Belum ada data pengeluaran.</td>
</tr>
@endforelse
</tbody>
@if($pengeluarans->count() > 0)
<tfoot>
<tr class="fw-bold">
<td colspan="6" class="text-end">Total Pengeluaran</td>
<td colspan="4" class="text-end text-danger">Rp {{ number_format($total, 0, ',', '.') }}</td>
</tr>
</tfoot>
@endif
</table>
</div>
<!-- Pagination -->
<div class="mt-3 d-flex justify-content-between align-items-center">
<div>
{{ $pengeluarans->links('pagination::bootstrap-4') }}
</div>
</div>
</div>
</div>
</div>
{{-- SweetAlert jika ada session success --}}
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
@if(session('success'))
<script>
Swal.fire({
toast: true,
position: 'top-end',
icon: 'success',
title: @json(session('success')),
showConfirmButton: false,
timer: 3000,
timerProgressBar: true,
});
</script>
@endif
@endsection