makes expected deposit linking work.

This commit is contained in:
2022-01-13 08:08:20 -08:00
parent f27e5aacdf
commit d6211c778b
9 changed files with 181 additions and 93 deletions

View File

@@ -150,7 +150,7 @@
(defn find-expected-deposit [client-id amount date]
(when date
(-> (d/q
'[:find ?ed
'[:find [(pull ?ed [:db/id {:expected-deposit/vendor [:db/id]}]) ...]
:in $ ?c ?a ?d-start
:where
[?ed :expected-deposit/client ?c]
@@ -161,40 +161,35 @@
[(auto-ap.utils/dollars= ?a2 ?a)]
]
(d/db conn) client-id amount (coerce/to-date (t/plus date (t/days -10))))
first
first)))
(defn categorize-transaction [transaction bank-account existing]
(let [bank-account-id (:db/id bank-account)
client (:client/_bank-accounts bank-account)
client-id (:db/id client)
valid-locations (or (:bank-account/locations bank-account) (:client/locations client))]
(cond (= :transaction-approval-status/suppressed (existing (:transaction/id transaction)))
:suppressed
(cond (= :transaction-approval-status/suppressed (existing (:transaction/id transaction)))
:suppressed
(existing (:transaction/id transaction))
:extant
(existing (:transaction/id transaction))
:extant
(not (:transaction/client transaction))
:error
(not (:transaction/client transaction))
:error
(not (:transaction/bank-account transaction))
:error
(not (:transaction/bank-account transaction))
:error
(not (:transaction/id transaction))
:error
(not (:transaction/id transaction))
:error
(not= "POSTED" (:transaction/status transaction))
:not-ready
(not= "POSTED" (:transaction/status transaction))
:not-ready
(and (:bank-account/start-date bank-account)
(not (t/after? (coerce/to-date-time (:transaction/date transaction))
(-> bank-account :bank-account/start-date coerce/to-date-time))))
:not-ready
(and (:bank-account/start-date bank-account)
(not (t/after? (coerce/to-date-time (:transaction/date transaction))
(-> bank-account :bank-account/start-date coerce/to-date-time))))
:not-ready
:else
:import)))
:else
:import))
(defn maybe-assoc-check-number [transaction]
(if-let [check-number (or (:transaction/check-number transaction)
@@ -224,13 +219,13 @@
(when (>= amount 0.0)
(when-let [expected-deposit (find-expected-deposit client amount (coerce/to-date-time date))]
(assoc transaction
:transaction/expected-deposit {:db/id expected-deposit
:transaction/expected-deposit {:db/id (:db/id expected-deposit)
:expected-deposit/status :expected-deposit-status/cleared}
:transaction/accounts [{:transaction-account/account :account/ccp
:transaction-account/amount amount
:transaction-account/location "A"}]
:transaction/approval-status :transaction-approval-status/approved
:transaction/vendor (:expected-deposit/vendor expected-deposit)
:transaction/vendor (:db/id (:expected-deposit/vendor expected-deposit))
))))
(defn maybe-code [{:transaction/keys [client amount] :as transaction} apply-rules valid-locations]