From 70e5c84716f4bdcfb983f460c1d26b9e3b945564 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Mon, 30 Sep 2019 22:01:09 -0700 Subject: [PATCH] Added Notes and cleared against fields. --- .../datomic/migrate/add_general_ledger.clj | 9 ++++++++- src/clj/auto_ap/graphql.clj | 4 ++++ src/clj/auto_ap/graphql/ledger.clj | 4 ++-- src/cljs/auto_ap/views/pages/ledger.cljs | 16 +++++++++------- .../views/pages/ledger/external_import.cljs | 8 ++++++-- 5 files changed, 29 insertions(+), 12 deletions(-) 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 bbb2ac89..4fb0c19f 100644 --- a/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj +++ b/src/clj/auto_ap/datomic/migrate/add_general_ledger.clj @@ -52,7 +52,14 @@ :db/valueType :db.type/boolean :db/cardinality :db.cardinality/one :db/doc "Has this cleared?"} - + {:db/ident :journal-entry/cleared-against + :db/valueType :db.type/string + :db/cardinality :db.cardinality/one + :db/doc "Cleared against"} + {:db/ident :journal-entry/note + :db/valueType :db.type/string + :db/cardinality :db.cardinality/one + :db/doc "notes about this journal-entry"} {:db/ident :journal-entry-line/expense-account :db/valueType :db.type/long :db/cardinality :db.cardinality/one diff --git a/src/clj/auto_ap/graphql.clj b/src/clj/auto_ap/graphql.clj index 00c156ad..27876ccb 100644 --- a/src/clj/auto_ap/graphql.clj +++ b/src/clj/auto_ap/graphql.clj @@ -137,6 +137,8 @@ {:fields {:id {:type :id} :source {:type 'String} :amount {:type 'String} + :note {:type 'String} + :cleared_against {:type 'String} :client {:type :client} :vendor {:type :vendor} :date {:type 'String} @@ -454,6 +456,8 @@ :date {:type 'String} :vendor_name {:type 'String} :amount {:type 'String} + :note {:type 'String} + :cleared_against {:type 'String} :line_items {:type '(list :import_ledger_line_item)}}} :edit_client {:fields {:id {:type :id} diff --git a/src/clj/auto_ap/graphql/ledger.clj b/src/clj/auto_ap/graphql/ledger.clj index 0f600cf8..d8a0ff9d 100644 --- a/src/clj/auto_ap/graphql/ledger.clj +++ b/src/clj/auto_ap/graphql/ledger.clj @@ -200,6 +200,8 @@ :journal-entry/external-id (:external_id entry) :journal-entry/vendor (all-vendors (:vendor_name entry)) :journal-entry/amount (:amount entry) + :journal-entry/note (:note entry) + :journal-entry/cleared-against (:cleared_against entry) :journal-entry/line-items (mapv (fn [ea] @@ -207,12 +209,10 @@ (get all-client-locations (:client_code entry)) (:location ea)) (throw (Exception. (str "Location '" (:location ea) "' not found.")))) - (when (and (not (all-accounts (:account_identifier ea))) (not (get (get all-client-bank-accounts (:client_code entry)) (:account_identifier ea)))) - (throw (Exception. (str "Account '" (:account_identifier ea) "' not found.")))) (remove-nils {:journal-entry-line/account (if (re-matches #"^[0-9]+$" (:account_identifier ea)) diff --git a/src/cljs/auto_ap/views/pages/ledger.cljs b/src/cljs/auto_ap/views/pages/ledger.cljs index 6fa63ac3..6a76c2cd 100644 --- a/src/cljs/auto_ap/views/pages/ledger.cljs +++ b/src/cljs/auto_ap/views/pages/ledger.cljs @@ -40,16 +40,18 @@ :query-obj {:venia/queries [[:ledger-page (assoc params :client-id (:id @(re-frame/subscribe [::subs/client]))) [[:journal-entries [:id - :source + :source :amount - [:vendor - [:name :id]] + :note + :cleared-against + [:vendor + [:name :id]] [:client [:name :id]] - [:line-items - [:id :debit :credit :location - [:account [:id :name]]]] - :date]] + [:line-items + [:id :debit :credit :location + [:account [:id :name]]]] + :date]] :total :start :end]]]} diff --git a/src/cljs/auto_ap/views/pages/ledger/external_import.cljs b/src/cljs/auto_ap/views/pages/ledger/external_import.cljs index eb5cfd01..5fd3b92e 100644 --- a/src/cljs/auto_ap/views/pages/ledger/external_import.cljs +++ b/src/cljs/auto_ap/views/pages/ledger/external_import.cljs @@ -34,11 +34,13 @@ (fn [{{lines :line-items :as d} :data :as g}] (into [] (for [[external-id lines] (group-by line->id lines) - :let [{:keys [source id client-code date vendor-name] :as line} (first lines)]] + :let [{:keys [source id client-code date vendor-name note cleared-against] :as line} (first lines)]] {:source source :external-id (line->id line) :client-code client-code :date date + :note note + :cleared-against cleared-against :vendor-name vendor-name :amount (reduce + 0 (->> lines @@ -214,7 +216,9 @@ ["Account" :account-identifier] ["Location" :location] ["Debit" :debit] - ["Credit" :credit]] + ["Credit" :credit] + ["Note" :note] + ["Cleared against" :cleared-against]] :read-only-headings [["status" :status]]