no need for transact-with-ledger.

This commit is contained in:
2023-04-03 09:04:33 -07:00
parent 68e809d8fb
commit 6622aae589
12 changed files with 213 additions and 249 deletions

View File

@@ -1,12 +1,12 @@
(ns auto-ap.import.transactions
(:require
[auto-ap.datomic :refer [audit-transact conn random-tempid remove-nils]]
[auto-ap.datomic.accounts :as a]
[iol-ion.tx :refer [upsert-entity]]
[iol-ion.tx :refer [upsert-transaction upsert-invoice]]
[auto-ap.datomic.checks :as d-checks]
[auto-ap.datomic.transaction-rules :as tr]
[auto-ap.datomic.transactions :as d-transactions]
[auto-ap.ledger :refer [transact-with-ledger]]
[auto-ap.rule-matching :as rm]
[auto-ap.time :as atime]
[auto-ap.utils :refer [dollars=]]
@@ -113,17 +113,17 @@
(defn add-new-payment [transaction [[vendor] :as invoice-payments] bank-account-id client-id]
(log/info "Adding a new payment for transaction " (:transaction/id transaction) " and invoices " invoice-payments)
(let [payment-id (random-tempid)]
(-> [`(upsert-entity ~(assoc transaction
:transaction/payment payment-id
:transaction/approval-status :transaction-approval-status/approved
:transaction/vendor vendor
:transaction/location "A"
:transaction/accounts
[#:transaction-account
{:db/id (random-tempid)
:account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"]))
:location "A"
:amount (Math/abs (:transaction/amount transaction))}]))]
(-> [`(upsert-transaction ~(assoc transaction
:transaction/payment payment-id
:transaction/approval-status :transaction-approval-status/approved
:transaction/vendor vendor
:transaction/location "A"
:transaction/accounts
[#:transaction-account
{:db/id (random-tempid)
:account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"]))
:location "A"
:amount (Math/abs (:transaction/amount transaction))}]))]
(conj {:payment/bank-account bank-account-id
:payment/client client-id
@@ -137,9 +137,9 @@
[{:invoice-payment/invoice invoice-id
:invoice-payment/payment payment-id
:invoice-payment/amount invoice-amount}
{:db/id invoice-id
:invoice/outstanding-balance 0.0
:invoice/status :invoice-status/paid}])
`(upsert-invoice ~{:db/id invoice-id
:invoice/outstanding-balance 0.0
:invoice/status :invoice-status/paid})])
invoice-payments)))))
(defn extract-check-number [{:transaction/keys [description-original]}]
@@ -255,25 +255,25 @@
#_maybe-autopay-invoices
#(maybe-code % apply-rules valid-locations)
identity)]
[(-> transaction
(assoc :transaction/client client-id)
(assoc :transaction/bank-account bank-account-id)
(assoc :transaction/approval-status :transaction-approval-status/unapproved)
maybe-assoc-check-number
code-fn
remove-nils)]))
(-> transaction
(assoc :transaction/client client-id)
(assoc :transaction/bank-account bank-account-id)
(assoc :transaction/approval-status :transaction-approval-status/unapproved)
maybe-assoc-check-number
code-fn
remove-nils)))
(defn get-existing [bank-account]
(log/info "looking up bank account data for" bank-account)
(into {}
(dc/q {:query {:find ['?tid '?as2]
:in ['$ '?ba]
:where ['[?e :transaction/bank-account ?ba]
'[?e :transaction/id ?tid]
'[?e :transaction/approval-status ?as]
'[?as :db/ident ?as2]]}
:args [(dc/db conn) bank-account]})))
:in ['$ '?ba]
:where ['[?e :transaction/bank-account ?ba]
'[?e :transaction/id ?tid]
'[?e :transaction/approval-status ?as]
'[?as :db/ident ?as2]]}
:args [(dc/db conn) bank-account]})))
(defprotocol ImportBatch
(import-transaction! [this transaction])
@@ -319,7 +319,7 @@
:error :import-batch/error
:not-ready :import-batch/not-ready) inc))
(when (= :import action)
(transact-with-ledger (transaction->txs transaction bank-account rule-applying-function)
(audit-transact [`(upsert-transaction ~(transaction->txs transaction bank-account rule-applying-function))]
{:user/name user
:user/role ":admin"}))))