penny- Extensible double-entry accounting system

Safe HaskellNone



Fills the bottom rows, which contain the tags, memo, and filename. These rows are formatted as follows:

  • If the columns for TotalDrCr, TotalCmdty, and TotalQty are all present, AND if there are at least TWO other columns present, then there will be a hanging indent. The bottom rows will begin at the SECOND column and end with the last column to the left of TotalDrCr. In this case, each bottom row will have three cells: one padding on the left, one main content, and one padding on the right.
  • Otherwise, if there are NO columns in the top row, these rows will take the entire width of the report. Each bottom row will have one cell.
  • Otherwise, the bottom rows are as wide as all the top cells combined. Each bottom row will have one cell.



data Fields a Source




tags :: a
memo :: a
filename :: a

data TopRowCells a Source




globalTransaction :: a
revGlobalTransaction :: a
globalPosting :: a
revGlobalPosting :: a
fileTransaction :: a
revFileTransaction :: a
filePosting :: a
revFilePosting :: a
filtered :: a
revFiltered :: a
sorted :: a
revSorted :: a
visible :: a
revVisible :: a
lineNum :: a

The line number from the posting's metadata

date :: a
flag :: a
number :: a
payee :: a
account :: a
postingDrCr :: a
postingCmdty :: a
postingQty :: a
totalDrCr :: a
totalCmdty :: a
totalQty :: a

mergeWithSpacers :: TopRowCells a -> Spacers b -> TopRowCells (a, Maybe b)Source

Merges a TopRowCells with a Spacers. Returns Maybes because totalQty has no spacer.