add controllers, servoices
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Finance;
|
||||
|
||||
class FinancialPdfReportService
|
||||
{
|
||||
public function __construct(private FinancialChartService $charts)
|
||||
{
|
||||
}
|
||||
|
||||
public function buildPdf(array $summary): string
|
||||
{
|
||||
$pdf = new \FPDF();
|
||||
$pdf->AddPage();
|
||||
$pdf->SetFont('Arial', 'B', 16);
|
||||
$pdf->Cell(0, 10, 'Financial Report for School Year: ' . ($summary['schoolYear'] ?? ''), 0, 1, 'C');
|
||||
|
||||
$pdf->Ln(10);
|
||||
$pdf->SetFont('Arial', 'B', 12);
|
||||
$pdf->Cell(130, 10, 'Description', 1);
|
||||
$pdf->Cell(60, 10, 'Amount (USD)', 1);
|
||||
$pdf->Ln();
|
||||
|
||||
$rows = [
|
||||
'Total Charges' => $summary['totalCharges'] ?? 0,
|
||||
'Total Extra Charges' => $summary['totalExtraCharges'] ?? 0,
|
||||
'Total Discounts' => $summary['totalDiscounts'] ?? 0,
|
||||
'Total Refunds' => $summary['totalRefunds'] ?? 0,
|
||||
'Total Expenses' => $summary['totalExpenses'] ?? 0,
|
||||
'Total Reimbursements' => $summary['totalReimbursements'] ?? 0,
|
||||
'Donation to School (Masjid/Donation reimbursements)' => $summary['donationToSchool'] ?? 0,
|
||||
'Net Amount (Earned Income)' => $summary['netAmount'] ?? 0,
|
||||
'Amount Collected (Paid)' => $summary['amountCollected'] ?? 0,
|
||||
'Amount Unpaid (Outstanding)' => $summary['totalUnpaid'] ?? 0,
|
||||
];
|
||||
|
||||
$pdf->SetFont('Arial', '', 11);
|
||||
foreach ($rows as $label => $amount) {
|
||||
$pdf->Cell(130, 10, $label, 1);
|
||||
$pdf->Cell(60, 10, '$' . number_format((float) $amount, 2), 1);
|
||||
$pdf->Ln();
|
||||
}
|
||||
|
||||
$barChart = $this->charts->generateBarChart($summary);
|
||||
if (!empty($barChart) && file_exists($barChart)) {
|
||||
$pdf->Ln(10);
|
||||
$pdf->SetFont('Arial', 'B', 12);
|
||||
$pdf->Cell(0, 10, 'Summary Graph', 0, 1);
|
||||
$pdf->Image($barChart, null, null, 180);
|
||||
}
|
||||
|
||||
$pieChart = $this->charts->generatePieChart($summary);
|
||||
if (!empty($pieChart) && file_exists($pieChart)) {
|
||||
$pdf->Ln(10);
|
||||
$pdf->SetFont('Arial', 'B', 12);
|
||||
$pdf->Cell(0, 10, 'Expense Breakdown', 0, 1);
|
||||
$pdf->Image($pieChart, null, null, 120);
|
||||
}
|
||||
|
||||
return $pdf->Output('S');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user