diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 27cd9d8..df8977a 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -262,4 +262,44 @@ class ReportController extends Controller 'locations' => AssetLocation::orderBy('name')->get(), ]); } + + public function depreciations(Request $request) + { + $filters = $request->only(['asset_class_id','asset_category_id','asset_status_id']); + $query = Asset::with(['class','category','status','vendorContract']) + ->when($filters['asset_class_id'] ?? null, fn($q,$v) => $q->where('asset_class_id',$v)) + ->when($filters['asset_category_id'] ?? null, fn($q,$v) => $q->where('asset_category_id',$v)) + ->when($filters['asset_status_id'] ?? null, fn($q,$v) => $q->where('asset_status_id',$v)); + + $items = $query->paginate(config('system.ui.table_page_size', 20))->withQueryString(); + + if ($request->get('export') === 'excel') { + $rows = $query->get()->map(function($a){ + return [ + $a->code, + $a->name, + $a->class?->name, + $a->category?->name, + $a->status?->name, + $a->purchase_date?->format('d/m/Y'), + $a->cost, + $a->residual_value, + $a->useful_life_months, + $a->depreciation_method, + $a->bookValue(), + ]; + })->toArray(); + return Excel::download(new ArrayReportExport([ + 'Kode','Nama','Kelas','Kategori','Status','Tgl Beli','Cost','Residual','Umur (bln)','Metode','Nilai Buku' + ], $rows),'asset-depreciation.xlsx'); + } + + return view('reports.depreciations', [ + 'items' => $items, + 'filters' => $filters, + 'classes' => AssetClass::orderBy('name')->get(), + 'categories' => AssetCategory::orderBy('name')->get(), + 'statuses' => AssetStatus::orderBy('name')->get(), + ]); + } } diff --git a/resources/views/reports/depreciations.blade.php b/resources/views/reports/depreciations.blade.php new file mode 100644 index 0000000..2c65ae8 --- /dev/null +++ b/resources/views/reports/depreciations.blade.php @@ -0,0 +1,100 @@ +@extends('layouts.master') + +@section('content') +
+ +| Kode | +Nama | +Kelas | +Kategori | +Status | +Tgl Beli | +Cost | +Residual | +Umur (bln) | +Metode | +Nilai Buku | +
|---|---|---|---|---|---|---|---|---|---|---|
| {{ $item->code }} | +{{ $item->name }} | +{{ $item->class?->name ?: '-' }} | +{{ $item->category?->name ?: '-' }} | +{{ $item->status?->name ?: '-' }} | +{{ optional($item->purchase_date)->format('d/m/Y') ?: '-' }} | +{{ $item->cost ? number_format($item->cost,2,',','.') : '-' }} | +{{ $item->residual_value ? number_format($item->residual_value,2,',','.') : '-' }} | +{{ $item->useful_life_months ?? '-' }} | +{{ $item->depreciation_method }} | +{{ number_format($item->bookValue(),2,',','.') }} | +
| Belum ada data. | ||||||||||