adding general ledger.

This commit is contained in:
Bryce Covert
2019-03-14 19:45:04 -07:00
parent a23b52c600
commit 7b6eb54e51

View File

@@ -4,15 +4,54 @@
(defonce report-queue (d/tx-report-queue (d/connect uri) ) )
(let [transaction (.peek report-queue)]
(defn infer-entity [[_ changes]]
(let [namespaces (->> changes
(map :a)
(map namespace)
set)]
(cond (namespaces "invoice" ) :invoice
(namespaces "invoice-expense-account" ) :invoice-expense-account
:else nil)))
(defmulti entity-change->ledger infer-entity )
(defmethod entity-change->ledger :invoice
[[entity changes]]
(let [added-v (reduce (fn [added-v {:keys [a v added]}]
(if added
(assoc added-v a v)
added-v))
{}
changes)]
{:general-ledger/source "invoice"
:general-ledger/original-entity entity
:general-ledger/vendor (:invoice/vendor added-v)
:general-ledger/amount (- (:invoice/total added-v))
})
)
(defmethod entity-change->ledger :invoice-expense-account
[[entity changes]]
nil
)
(defmethod entity-change->ledger nil
[[entity changes]]
nil)
#_(defn entity-change->ledger [[entity-id changes]]
[entity-id (infer-entity changes)])
(let [transaction (.peek report-queue)
db (:db-after transaction)]
(->> (:tx-data transaction)
(map (fn [x]
(.getY x)
(println id)))
))
(map (fn [^datomic.db.Datum x]
{:e (:e x)
:a (d/ident db (:a x))
:v (:v x)
:added (:added x)}))
(group-by :e)
(map entity-change->ledger)))