diff --git a/src/clj/auto_ap/graphql/ledger.clj b/src/clj/auto_ap/graphql/ledger.clj index 463e9951..9cfa4c34 100644 --- a/src/clj/auto_ap/graphql/ledger.clj +++ b/src/clj/auto_ap/graphql/ledger.clj @@ -539,21 +539,24 @@ :account (:account jel) :location (:location jel)}))))) (group-by #(account-lookup (get-in % [:account :id]))))] - [account journal-entries] journal-entries] + [account journal-entries] journal-entries + :let [journal-entries (first (reduce + (fn [[acc last-je] je] + (let [next-je (assoc je :running_balance + (- (+ (or (:running_balance last-je 0.0) 0.0) + (or (:debit je 0.0) 0.0)) + (or (:credit je 0.0) 0.0)))] + [(conj acc next-je) next-je])) + [] + (sort-by :date journal-entries)))]] {:category category :client_id client-id :location location :account account - :journal_entries - (first (reduce - (fn [[acc last-je] je] - (let [next-je (assoc je :running_balance - (- (+ (or (:running_balance last-je 0.0) 0.0) - (or (:debit je 0.0) 0.0)) - (or (:credit je 0.0) 0.0)))] - [(conj acc next-je) next-je])) - [] - journal-entries))})}) + :journal_entries journal-entries + :total (- (reduce + 0.0 (map (fnil :debit 0.0) journal-entries)) + (reduce + 0.0 (map (fnil :credit 0.0) journal-entries))) + })})