namespace AccountsDAL.DTO.Reports { // Backs the REAL, live-wired "Balance Sheet Vertical" (MREPORT -1399971488, menus AC20087 // Schedule/AC20088 Group/AC20089 Account). Field list is a verbatim match to what's already // configured live on all 3 views (-1399963722/723/734) — confirmed via a JOIN of // MREPORTVIEWFIELDS to MREPORTVSFIELDS against the real target DB, same verification approach // used for the P&L Vertical/Horizontal cutover. See BSVerticalHorizontalReportQB.cs for the // query side and the companion migration for the GB4->GB5 cutover + metadata flag fix. // // Only AC20087 (Schedule-wise, SECONDTEMPLATEID -> BalanceSheetVerticalComponent, already fixed // this session — see gb4.7mfe's balancesheetvertical.component.ts) has a real, existing custom // Angular component live. AC20088/89's SECONDTEMPLATEID rows (BSGrpVerticalComponent, // BSAccountVerticalComponent) point at files that do not exist in gb4.7mfe — a separate, // pre-existing frontend gap this backend work does not attempt to close. Each report view also // has a plain generic-Grid sibling (-1499999417/418/419) that works once this migration's flag // fix lands, regardless of whether the custom component exists. public class BalanceSheetVerticalReportDTO { public int AccountId { get; set; } public string? AccountCode { get; set; } public string? AccountName { get; set; } public int AccountGroupId { get; set; } public string? AccountGroupCode { get; set; } public string? AccountGroupName { get; set; } public int AccountScheduleId { get; set; } public string? AccountScheduleCode { get; set; } public string? AccountScheduleName { get; set; } // MACCOUNTGROUP.PARENTID rollup — Balance Sheet groups nest (e.g. "Cash and Bank" under // "Current Assets"), unlike P&L's flat Schedule->Group->Account chain. public int ParentGroupId { get; set; } public string? ParentGroupCode { get; set; } public string? ParentGroupName { get; set; } public decimal Debit { get; set; } public decimal Credit { get; set; } // Same value as Credit — a pre-existing live-configured field distinct from Credit // (mirrors the Id/Code/Name-style duplicate fields already seen on the P&L views' own // metadata); populated defensively rather than left at its default. public decimal BalanceSheetCredit { get; set; } // ACCOUNT / ACCOUNTGROUP / ACCOUNTSCHEDULE — which of the 3 live menus' grain this row is at. public string ReportType { get; set; } = string.Empty; // "Asset" / "Liability" — MACCOUNT.ACCOUNTSCHEDULENATURE 1/0 respectively. public string ReportNature { get; set; } = string.Empty; // "Assets" / "Liabilities and Equity" — the outer grouping band, same role as P&L // Vertical's own Description field. public string Description { get; set; } = string.Empty; } }