38 lines
1.6 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|