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