Files
Distribution_GL/Services/PdfDocuments/PdfFormatting.cs
T

23 lines
1.0 KiB
C#

namespace General_Ledger_Service.Services.PdfDocuments
{
// Shared amount-formatting rules for every report PDF (05_LKAS_Report_PDF_Templates.md
// Section 9): thousands separator, 2 decimal places, round-half-up, negatives in
// parentheses. Same rounding rule as CLAUDE.md Rule 13's FormatCellValue.
public static class PdfFormatting
{
public static string FormatAmount(decimal value)
{
var rounded = Math.Round(value, 2, MidpointRounding.AwayFromZero);
return rounded < 0 ? $"({Math.Abs(rounded):N2})" : rounded.ToString("N2");
}
// Blank instead of "0.00" - Trial Balance's Debit/Credit split (Section 2).
public static string FormatAmountOrBlank(decimal value) =>
value == 0 ? string.Empty : FormatAmount(value);
// "—" instead of "0.00" - Tax Summary's Output/Input Tax columns (Section 8).
public static string FormatAmountOrDash(decimal value) =>
value == 0 ? "—" : FormatAmount(value);
}
}