Skip to content

fix: use date2 when --date2 is present for reg --csv #2425

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 15 additions & 13 deletions hledger/Hledger/Cli/Commands/Register.hs
Original file line number Diff line number Diff line change
Expand Up @@ -101,46 +101,48 @@ register opts@CliOpts{rawopts_=rawopts, reportspec_=rspec} j
rpt = postingsReport rspec j
render | fmt=="txt" = postingsReportAsText opts
| fmt=="json" = toJsonText
| fmt=="csv" = printCSV . postingsReportAsCsv
| fmt=="tsv" = printTSV . postingsReportAsCsv
| fmt=="csv" = printCSV . postingsReportAsCsv wd
| fmt=="tsv" = printTSV . postingsReportAsCsv wd
| fmt=="html" =
(<>"\n") . Lucid.renderText . styledTableHtml .
map (map (fmap Lucid.toHtml)) .
postingsReportAsSpreadsheet oneLineNoCostFmt baseUrl query
postingsReportAsSpreadsheet oneLineNoCostFmt wd baseUrl query
| fmt=="fods" =
printFods IO.localeEncoding . Map.singleton "Register" .
(,) (1,0) .
postingsReportAsSpreadsheet oneLineNoCostFmt baseUrl query
postingsReportAsSpreadsheet oneLineNoCostFmt wd baseUrl query
| otherwise = error' $ unsupportedOutputFormatError fmt -- PARTIAL:
where fmt = outputFormatFromOpts opts
baseUrl = balance_base_url_ $ _rsReportOpts rspec
query = querystring_ $ _rsReportOpts rspec
wd = whichDate $ _rsReportOpts rspec

postingsReportAsCsv :: PostingsReport -> CSV
postingsReportAsCsv =
Spr.rawTableContent . postingsReportAsSpreadsheet machineFmt Nothing []

postingsReportAsCsv :: WhichDate -> PostingsReport -> CSV
postingsReportAsCsv wd =
Spr.rawTableContent . postingsReportAsSpreadsheet machineFmt wd Nothing []

-- ToDo: --layout=bare etc.
-- ToDo: Text output does not show headers, but Spreadsheet does
postingsReportAsSpreadsheet ::
AmountFormat -> Maybe Text -> [Text] ->
AmountFormat -> WhichDate -> Maybe Text -> [Text] ->
PostingsReport -> [[Spr.Cell Spr.NumLines Text]]
postingsReportAsSpreadsheet fmt baseUrl query is =
postingsReportAsSpreadsheet fmt wd baseUrl query is =
Spr.addHeaderBorders
(map Spr.headerCell
["txnidx","date","code","description","account","amount","total"])
:
map (postingsReportItemAsRecord fmt baseUrl query) is
map (postingsReportItemAsRecord fmt wd baseUrl query) is

{- ToDo:
link txnidx to journal URL,
however, requires Web.Widget.Common.transactionFragment
-}
postingsReportItemAsRecord ::
(Spr.Lines border) =>
AmountFormat -> Maybe Text -> [Text] ->
AmountFormat -> WhichDate -> Maybe Text -> [Text] ->
PostingsReportItem -> [Spr.Cell border Text]
postingsReportItemAsRecord fmt baseUrl query (_, _, _, p, b) =
postingsReportItemAsRecord fmt wd baseUrl query (_, _, _, p, b) =
[idx,
(dateCell baseUrl query (paccount p) date) {Spr.cellType = Spr.TypeDate},
cell code, cell desc,
Expand All @@ -150,7 +152,7 @@ postingsReportItemAsRecord fmt baseUrl query (_, _, _, p, b) =
where
cell = Spr.defaultCell
idx = Spr.integerCell . maybe 0 tindex $ ptransaction p
date = postingDate p -- XXX csv should show date2 with --date2
date = postingDateOrDate2 wd p
code = maybe "" tcode $ ptransaction p
desc = maybe "" tdescription $ ptransaction p
acct = bracket $ paccount p
Expand Down