Files
Distribution_GL/Services/CsvDocuments/BalanceSheetCsvDocument.cs
T

38 lines
1.6 KiB
C#

using General_Ledger_Service.DTOs.Reports;
namespace General_Ledger_Service.Services.CsvDocuments
{
// Retrofit 2026-07-31 - Section column carries the classified section name (Non-Current
// Assets, Current Assets, Equity, Non-Current/Current Liabilities, Unclassified) rather than
// the old AccountType/depth-indentation pair (05_LKAS_Report_PDF_Templates.md Section 10).
public static class BalanceSheetCsvDocument
{
public static byte[] Generate(BalanceSheetReportDto data)
{
var csv = new CsvBuilder();
csv.AddRow("Section", "Account Code", "Account Name", "Balance");
void WriteSection(string section, BalanceSheetSectionDto s)
{
foreach (var line in s.Lines)
{
csv.AddRow(section, line.AccountCode, line.AccountName, line.Balance);
}
}
WriteSection("Non-Current Assets", data.NonCurrentAssets);
WriteSection("Current Assets", data.CurrentAssets);
WriteSection("Unclassified Assets", data.UnclassifiedAssets);
csv.AddRow("Asset", "", "TOTAL ASSETS", data.TotalAssets);
WriteSection("Equity", data.Equity);
WriteSection("Non-Current Liabilities", data.NonCurrentLiabilities);
WriteSection("Current Liabilities", data.CurrentLiabilities);
WriteSection("Unclassified Liabilities", data.UnclassifiedLiabilities);
csv.AddRow("Liability/Equity", "", "TOTAL EQUITY AND LIABILITIES", data.TotalEquityAndLiabilities);
return csv.Build();
}
}
}