progress on general ledger.

This commit is contained in:
Bryce Covert
2019-04-03 14:02:17 -07:00
parent 55fb386376
commit 4e3e6d3bea
5 changed files with 78 additions and 52 deletions

View File

@@ -66,13 +66,9 @@
:auto-ap/add-new-vendors {:txes-fn 'auto-ap.datomic.migrate.add-new-vendors/add-new-vendors :requires [:auto-ap/fix-check-numbers]}
:auto-ap/add-account-visibility-fields {:txes-fn 'auto-ap.datomic.migrate.account-sorting/add-account-visibility-fields :requires [:auto-ap/add-new-vendors]}
:auto-ap/make-every-account-visible {:txes-fn 'auto-ap.datomic.migrate.account-sorting/make-every-account-visible :requires [:auto-ap/add-account-visibility-fields]}
:auto-ap/add-general-ledger3 {:txes add-general-ledger/add-general-ledger :requires [:auto-ap/make-every-account-visible]}
:auto-ap/add-general-ledger-fns {:txes-fn 'auto-ap.datomic.migrate.add-general-ledger/add-general-ledger-fns :requires [:auto-ap/add-general-ledger3]}
:auto-ap/make-entity-not-unique {:txes auto-ap.datomic.migrate.add-general-ledger/make-entity-not-unique :requires [:auto-ap/add-general-ledger-fns]}
:auto-ap/bulk-load-invoice-ledger2 {:txes-fn 'auto-ap.datomic.migrate.add-general-ledger/bulk-load-invoice-ledger :requires [:auto-ap/make-entity-not-unique]}
:auto-ap/add-general-ledger6 {:txes add-general-ledger/add-general-ledger :requires [:auto-ap/make-every-account-visible]}
:auto-ap/add-general-ledger-fns2 {:txes-fn 'auto-ap.datomic.migrate.add-general-ledger/add-general-ledger-fns :requires [:auto-ap/add-general-ledger6]}
#_#_:auto-ap/bulk-load-invoice-ledger2 {:txes-fn 'auto-ap.datomic.migrate.add-general-ledger/bulk-load-invoice-ledger :requires [:auto-ap/make-entity-not-unique]}
}]
(println "Conforming database...")

View File

@@ -3,47 +3,65 @@
[auto-ap.ledger :as ledger]))
(def add-general-ledger
[[{:db/ident :general-ledger/source
[[{:db/ident :journal-entry/source
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/doc "The type of entity that created this entry"}
{:db/ident :general-ledger/client
{:db/ident :journal-entry/client
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one
:db/doc "The client for the ledger"}
{:db/ident :general-ledger/date
{:db/ident :journal-entry/date
:db/valueType :db.type/instant
:db/cardinality :db.cardinality/one
:db/doc "The time for this entry"}
{:db/ident :general-ledger/original-entity
{:db/ident :journal-entry/original-entity
:db/valueType :db.type/ref
:db/unique :db.unique/identity
:db/cardinality :db.cardinality/one
:db/doc "The thing that created this entry"}
{:db/ident :general-ledger/vendor
{:db/ident :journal-entry/vendor
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one
:db/doc "The vendor for the ledger entry"}
{:db/ident :general-ledger/amount
{:db/ident :journal-entry/amount
:db/valueType :db.type/double
:db/cardinality :db.cardinality/one
:db/doc "The amount for the entry"}
{:db/ident :general-ledger/location
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/doc "Location of the entry"}
{:db/ident :general-ledger/from-expense-account
:db/valueType :db.type/long
:db/cardinality :db.cardinality/one
:db/doc "The expense account from"}
{:db/ident :general-ledger/to-expense-account
:db/valueType :db.type/long
:db/cardinality :db.cardinality/one
:db/doc "The expense account to"}
{:db/ident :general-ledger/cleared
{:db/ident :journal-entry/line-items
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/many
:db/isComponent true
:db/doc "Each of the line items in the general ledger"}
{:db/ident :journal-entry/cleared
:db/valueType :db.type/boolean
:db/cardinality :db.cardinality/one
:db/doc "Has this cleared?"}]])
:db/doc "Has this cleared?"}
{:db/ident :journal-entry-line/expense-account
:db/valueType :db.type/long
:db/cardinality :db.cardinality/one
:db/doc "The expense account being changed"}
{:db/ident :journal-entry-line/account
:db/valueType :db.type/ref
:db/cardinality :db.cardinality/one
:db/doc "The other type of account being changed"}
{:db/ident :journal-entry-line/debit
:db/valueType :db.type/double
:db/cardinality :db.cardinality/one
:db/doc "The amount to debit"}
{:db/ident :journal-entry-line/credit
:db/valueType :db.type/double
:db/cardinality :db.cardinality/one
:db/doc "The amount to credit"}
{:db/ident :journal-entry-line/location
:db/valueType :db.type/string
:db/cardinality :db.cardinality/one
:db/doc "Location of the entry"}]
]
)
(defn add-general-ledger-fns [conn]
[[{:db/ident :replace-general-ledger
@@ -52,7 +70,7 @@
:params [db origin]
:code (let [ids (->> (d/query {:query {:find ['?e]
:in ['$ '?origin]
:where [['?e :general-ledger/original-entity '?origin]]}
:where [['?e :journal-entry/original-entity '?origin]]}
:args [db origin]})
(map first))]
(into []
@@ -69,8 +87,6 @@
z))
#_(bulk-load-invoice-ledger (d/connect auto-ap.datomic/uri))
(def make-entity-not-unique
[[[:db/retract :general-ledger/original-entity :db/unique :db.unique/identity]]])