Files
Distribution_GL/Services/CsvDocuments/IncomeTaxComputationCsvDocument.cs
T

32 lines
1.5 KiB
C#

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();
}
}
}