Adds lock icon for locked transactions.

This commit is contained in:
2024-04-23 22:22:12 -07:00
parent 72c53add1b
commit ad29a19ff3
5 changed files with 36 additions and 5 deletions

View File

@@ -12,7 +12,8 @@
[auto-ap.graphql.utils :refer [extract-client-ids]]
[clj-time.coerce :as coerce]
[clojure.string :as str]
[datomic.api :as dc]))
[datomic.api :as dc]
[clj-time.core :as time]))
(defn potential-duplicate-ids [db args]
(when (and (:potential-duplicates args)
@@ -171,10 +172,22 @@
true (apply-sort-3 (assoc args :default-asc? false))
true (apply-pagination args)))))
(defn is-locked? [transaction]
(let [transaction-date (some-> transaction :transaction/date coerce/to-date-time)
bank-account-start-date (some-> transaction :transaction/bank-account :bank-account/start-date coerce/to-date-time)
client-locked-until (some-> transaction :transaction/client :client/locked-until coerce/to-date-time)
locked-by-client? (cond (not transaction-date) false
(not client-locked-until) false
:else (time/before? transaction-date client-locked-until))
locked-by-bank-account? (cond (not transaction-date) false
(not bank-account-start-date) false
:else (time/before? transaction-date bank-account-start-date))]
(or locked-by-bank-account? locked-by-client?)))
(defn graphql-results [ids db _]
(let [results (->> (pull-many db '[* {:transaction/client [:client/name :db/id :client/code]
(let [results (->> (pull-many db '[* {:transaction/client [:client/name :db/id :client/code :client/locked-until]
:transaction/approval-status [:db/ident :db/id]
:transaction/bank-account [:bank-account/name :bank-account/code :bank-account/yodlee-account-id :db/id :bank-account/locations :bank-account/current-balance]
:transaction/bank-account [:bank-account/name :bank-account/code :bank-account/yodlee-account-id :db/id :bank-account/locations :bank-account/current-balance :bank-account/start-date]
:transaction/forecast-match [:db/id :forecasted-transaction/identifier]
:transaction/vendor [:db/id :vendor/name]
:transaction/matched-rule [:db/id :transaction-rule/note]
@@ -190,6 +203,7 @@
:transaction/yodlee-merchant [:db/id :yodlee-merchant/yodlee-id :yodlee-merchant/name]
:transaction/plaid-merchant [:db/id :plaid-merchant/name]}]
ids)
(map #(assoc % :transaction/is-locked (is-locked? %)))
(map #(update % :transaction/date coerce/from-date))
(map #(update % :transaction/post-date coerce/from-date))
(map #(update % :transaction/accounts