Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

ajikamaludin/expense-tracker-inertiajs

6 stars
3 code files
View ajikamaludin/expense-tracker-inertiajs on GitHub

composer.json

Open in GitHub
{
//
"require": {
//
"maatwebsite/excel": "^3.1"
},
//
}

app/Http/Controllers/SummaryController.php

Open in GitHub
use App\Exports\SummaryExport;
use Illuminate\Http\Request;
 
class SummaryController extends Controller
{
//
public function close(Request $request)
{
$content = (new SummaryExport)->download('summary.xlsx', \Maatwebsite\Excel\Excel::XLSX);
//
}
}

app/Exports/SummaryExport.php

Open in GitHub
use App\Models\Transaction;
use App\Models\Budget;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
 
class SummaryExport implements FromCollection
{
use Exportable;
 
public function collection()
{
$dataExports = [];
 
$dataExports[] = [
'Sisa Income :',
Transaction::where('is_income', 1)->sum('amount') - Transaction::where('is_income', 0)->sum('amount')
];
 
$dataExports[] = [
'Total Saving :',
Transaction::where('is_income', 1)->sum('amount') - Transaction::where('is_income', 0)->sum('amount') + Budget::where('end_date', null)->sum('rollover')
];
 
$dataExports[] = [''];
 
$dataExports[] = ['date', 'category', 'description', 'amount'];
$transactions = Transaction::where('is_income', 0)->with(['category'])->get();
foreach ($transactions as $transaction) {
$dataExports[] = [
$transaction->date,
$transaction->category->name,
$transaction->description,
$transaction->amount,
];
}
 
$dataExports[] = [''];
 
$dataExports[] = ['category', 'description', 'budget amount', 'previous budget amount', 'total_expense', 'remain per category'];
$budgets = Budget::where('end_date', null)->with(['category'])->get();
foreach ($budgets as $budget) {
$dataExports[] = [
$budget->category->name,
$budget->category->description,
$budget->budget,
$budget->rollover,
$budget->total_used,
$budget->remain,
];
}
 
return collect($dataExports);
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.