progress on reports.

This commit is contained in:
2024-11-10 22:09:14 -08:00
parent eed9bfbd11
commit df3183f85c
7 changed files with 54 additions and 33 deletions

View File

@@ -236,29 +236,37 @@
(dc/db auto-ap.datomic/conn)
#inst "2024-10-10" n))
(defn detailed-account-snapshot [db client-id ^java.util.Date end]
(for [running-balance-set (account-sets db client-id)
:let [{:keys [account-id client-id location current-balance debits credits count]}
(->> running-balance-set
(take-while (fn until-date [^Line l]
(let [^java.util.Date d (.-date l)]
(<= (.compareTo ^java.util.Date d end) 0))))
(reduce
(fn step [acc ^Line l]
(assoc! acc
:count (unchecked-inc (:count acc))
:debits (unchecked-add (:debits acc) (or (.-debit l) 0.0))
:credits (unchecked-add (:credits acc) (or (.-credit l) 0.0))
:current-balance (.-running-balance l)
:account-id (.-account-id l)
:client-id (.-client-id l)
:location (.-location l)))
(transient {:count 0
:debits 0.0
:credits 0.0
:current-balance 0.0})))]
:when client-id]
[client-id account-id location debits credits current-balance count]))
(defn detailed-account-snapshot
([db client-id ^java.util.Date end]
(detailed-account-snapshot db client-id end nil))
([db client-id ^java.util.Date end ^java.util.Date start]
(for [running-balance-set (account-sets db client-id)
:let [{:keys [account-id client-id location current-balance debits credits count]}
(->> running-balance-set
(filter (fn until-end [^Line l]
(let [^java.util.Date d (.-date l)]
(and
(if start
(>= (.compareTo ^java.util.Date d start) 0)
true)
(< (.compareTo ^java.util.Date d end) 0)))))
(reduce
(fn step [acc ^Line l]
(assoc! acc
:count (unchecked-inc (:count acc))
:debits (unchecked-add (:debits acc) (or (.-debit l) 0.0))
:credits (unchecked-add (:credits acc) (or (.-credit l) 0.0))
:current-balance (.-running-balance l)
:account-id (.-account-id l)
:client-id (.-client-id l)
:location (.-location l)))
(transient {:count 0
:debits 0.0
:credits 0.0
:current-balance 0.0})))]
:when client-id]
[client-id account-id location debits credits current-balance count])))
(comment