using General_Ledger_Service.DTOs.Reports; namespace General_Ledger_Service.Services.CsvDocuments { public static class IncomeTaxComputationCsvDocument { public static byte[] Generate(IncomeTaxComputationDto data) { var csv = new CsvBuilder(); csv.AddRow("Line", "Amount"); csv.AddRow("Profit Before Tax", data.ProfitBeforeTax); csv.AddRow("Add: Non-Deductible Expenses", data.NonDeductibleExpenses); csv.AddRow("Less: Allowable Deductions", -data.AllowableDeductions); csv.AddRow("Adjusted Business Profit", data.AdjustedBusinessProfit); csv.AddRow("Add: Other Taxable Income", data.OtherTaxableIncome); csv.AddRow("Assessable Income", data.AssessableIncome); csv.AddRow("Less: Qualifying Payments / Reliefs", -data.QualifyingPaymentsReliefs); csv.AddRow("Taxable Income", data.TaxableIncome); csv.AddRow($"Corporate Income Tax @ {data.TaxRatePercent:0.00}%", data.CorporateIncomeTax); csv.AddRow("Add: Surcharge / Education Levy", data.SurchargeAmount); csv.AddRow("Gross Tax Liability", data.GrossTaxLiability); csv.AddRow("Less: APIT Credit", -data.ApitCredit); csv.AddRow("Less: WHT Credit", -data.WhtCredit); csv.AddRow("Less: Quarterly Tax Payments", -data.QuarterlyTaxPayments); csv.AddRow(data.BalanceTaxPayable < 0 ? "BALANCE TAX REFUNDABLE" : "BALANCE TAX PAYABLE", data.BalanceTaxPayable); return csv.Build(); } } }