From 2e694a5c754b1356746e72aa9f2f59af95b1909b Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Fri, 12 Apr 2019 23:18:24 -0700 Subject: [PATCH] supports general ledger migration. --- src/clj/auto_ap/datomic/migrate.clj | 6 +++-- .../datomic/migrate/add_general_ledger.clj | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/clj/auto_ap/datomic/migrate.clj b/src/clj/auto_ap/datomic/migrate.clj index 98270076..7539621d 100644 --- a/src/clj/auto_ap/datomic/migrate.clj +++ b/src/clj/auto_ap/datomic/migrate.clj @@ -82,9 +82,11 @@ :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/add-accounts {:txes auto-ap.datomic.migrate.add-general-ledger/add-accounts :requires [:auto-ap/add-general-ledger-fns2]} - :auto-ap/add-transaction-account {:txes auto-ap.datomic.migrate.add-general-ledger/add-transaction-account :requires [:auto-ap/add-general-ledger-fns2]} + :auto-ap/add-transaction-account {:txes auto-ap.datomic.migrate.add-general-ledger/add-transaction-account :requires [:auto-ap/add-accounts]} :auto-ap/change-expense-account-to-entity {:txes auto-ap.datomic.migrate.add-general-ledger/change-expense-account-to-entity :requires [:auto-ap/add-transaction-account]} - :auto-ap/add-account-to-vendor {:txes auto-ap.datomic.migrate.add-general-ledger/add-account-to-vendor :requires [:auto-ap/add-transaction-account]} + :auto-ap/add-account-to-vendor {:txes auto-ap.datomic.migrate.add-general-ledger/add-account-to-vendor :requires [:auto-ap/change-expense-account-to-entity]} + :auto-ap/convert-vendors {:txes-fn `add-general-ledger/convert-vendors :requires [:auto-ap/add-account-to-vendor]} + :auto-ap/convert-invoices {:txes-fn `add-general-ledger/convert-invoices :requires [:auto-ap/add-account-to-vendor]} #_#_: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]} }] diff --git a/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj b/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj index 288784ca..27ac953c 100644 --- a/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj +++ b/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj @@ -1,9 +1,12 @@ (ns auto-ap.datomic.migrate.add-general-ledger (:require [datomic.api :as d] [auto-ap.datomic :refer [remove-nils]] + [auto-ap.datomic.accounts :as accounts] [auto-ap.expense-accounts :as expense-accounts] [auto-ap.ledger :as ledger])) + + (def add-general-ledger [[{:db/ident :journal-entry/source :db/valueType :db.type/string @@ -158,3 +161,27 @@ :db/valueType :db.type/ref :db/cardinality :db.cardinality/one :db/doc "The account will be used when a bill is created."}]]) + +(defn convert-vendors [conn] + (let [vendors (d/query {:query {:find '[?v ?expense-account-id] + :in '[$] + :where ['[?v :vendor/default-expense-account ?expense-account-id]]} + :args [(d/db conn)]})] + [(mapv + (fn [[v expense-account-id]] + (remove-nils {:db/id v + :vendor/default-account (accounts/get-account-by-numeric-code-and-sets expense-account-id ["default"])})) + vendors)])) + +(defn convert-invoices [conn] + (let [invoice-expense-accounts (d/query {:query {:find '[?iea ?expense-account-id] + :in '[$] + :where ['[?iea :invoice-expense-account/expense-account-id ?expense-account-id]]} + :args [(d/db conn)]})] + [(mapv + (fn [[iea expense-account-id]] + (remove-nils {:db/id iea + :invoice-expense-account/account (accounts/get-account-by-numeric-code-and-sets expense-account-id ["default"])})) + invoice-expense-accounts)])) + +