Files
integreat/scratch-sessions/fix-invoices-with-splits.clj
Bryce Covert 6c395f7397 fixes.
2021-12-27 07:08:40 -08:00

99 lines
4.3 KiB
Clojure

;; This buffer is for Clojure experiments and evaluation.
;; Press C-j to evaluate the last expression.
;; You can also press C-u C-j to evaluate the expression and pretty-print its result.
(def g (auto-ap.ledger/unbalanced-invoices))
(count g)
(take 3 g)
(clojure.data.csv/write-csv *out*
(->> g
(map (fn [i]
(let [e (d/pull (d/db auto-ap.datomic/conn)
'[:invoice/total
:db/id
{:invoice/client [:client/code]
:invoice/expense-accounts [*]}
{:journal-entry/_original-entity [:journal-entry/amount
{:journal-entry/line-items [*]} ]}]
i)
je (first (:journal-entry/_original-entity e))]
[(:db/id e)
(:client/code (:invoice/client e))
(:invoice/total e)
(:journal-entry/amount je)
(clojure.string/join ", " (filter identity (map :journal-entry-line/credit (:journal-entry/line-items je))))
(clojure.string/join ", " (filter identity (map :journal-entry-line/debit (:journal-entry/line-items je))))
(count (:invoice/expense-accounts e))
(count (:journal-entry/line-items je))]
))))
:separator \tab)
(clojure.pprint/pprint (d/pull (d/db auto-ap.datomic/conn) '[*] 17592232790166))
(clojure.pprint/pprint (user/entity-history 17592232790174))
(user/tx-detail 13194187889225)
(defn updated-recently? [i]
(d/q '[:find ?i
:in $ ?i
:where [?i :invoice/date]]
(d/since (d/db auto-ap.datomic/conn) #inst "2021-11-20")
i))
(def z (for [[client] (d/q '[:find ?c
:in $ [?code ...]
:where
[?c :client/code ?code]]
(d/db auto-ap.datomic/conn)
["MDB" "NGT" "AFH" "WGC" "RCI" "MVSC" "OMG" "BSG" "BCBG" "NGMJ" "BCBC"])
:let [results (d/q '[:find ?i ?z ?a ?b
:in $ ?c
:where
[?i :invoice/client ?c]
[?i :invoice/total ?a]
[?i :invoice/expense-accounts ?z]
[?z :invoice-expense-account/amount ?b]]
(d/db auto-ap.datomic/conn) client)
results (->> results
(group-by first)
(map (fn [[i v]]
(let [[[_ _ total]] v]
[i total (reduce + 0
(map (fn [[_ _ _ a]]
a)
v))])))
(filter (fn [[i total ea ]]
(not (auto-ap.utils/dollars= total ea)))))]
[i _ ea] results
:when (updated-recently? i)]
{:db/id i
:invoice/total ea}))
(clojure.pprint/pprint z)
@(d/transact auto-ap.datomic/conn (conj z
{:db/id "datomic.tx"
:db/doc "Fixing issue where invoice amounts are not adding up"}) )
(count (auto-ap.ledger/unbalanced-invoices))
(clojure.pprint/pprint (d/pull (d/db auto-ap.datomic/conn) '[*] 17592204815836))
(entity-history 17592204815839)
(d/pull (d/db auto-ap.datomic/conn) [:client/locations] [:client/code "WGC"] )