From 1080005b8ceecb86948c114b78f1b17947998283 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Sun, 26 Mar 2023 20:58:48 -0700 Subject: [PATCH] got tests to pass again. --- src/clj/auto_ap/graphql/transactions.clj | 37 ++++++++++++------------ src/clj/auto_ap/import/transactions.clj | 27 ++++++++--------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/clj/auto_ap/graphql/transactions.clj b/src/clj/auto_ap/graphql/transactions.clj index b941718d..bf6a2fe8 100644 --- a/src/clj/auto_ap/graphql/transactions.clj +++ b/src/clj/auto_ap/graphql/transactions.clj @@ -109,16 +109,16 @@ (:transaction/amount transaction) 100))))] (if (= "Shared" (:location ar)) - (do - (log/info "here" valid-locations) - (->> valid-locations - (map - (fn [cents location] - {:transaction-account/account (:account_id ar) - :transaction-account/amount (* 0.01 cents) - :transaction-account/location location}) - (rm/spread-cents cents-to-distribute (count valid-locations))))) - [(cond-> {:transaction-account/account (:account_id ar) + (->> valid-locations + (map + (fn [cents location] + {:db/id (random-tempid) + :transaction-account/account (:account_id ar) + :transaction-account/amount (* 0.01 cents) + :transaction-account/location location}) + (rm/spread-cents cents-to-distribute (count valid-locations)))) + [(cond-> {:db/id (random-tempid) + :transaction-account/account (:account_id ar) :transaction-account/amount (* 0.01 cents-to-distribute)} (:location ar) (assoc :transaction-account/location (:location ar)))]))) account-rules)) @@ -134,7 +134,7 @@ accounts (if (seq accounts) (update-in accounts [(dec (count accounts)) :transaction-account/amount] #(+ % (double leftover))) [])] - [:reset (:db/id transaction) :transaction/accounts accounts]))) + accounts))) (defn bulk-code-transactions [context args _] (assert-admin (:id context)) @@ -173,12 +173,11 @@ (log/info "Bulk coding " (count all-ids) args) (transact-batch-with-ledger - (mapcat (fn [i] - (cond-> [(cond-> i - (:approval_status args) (assoc :transaction/approval-status (enum->keyword (:approval_status args) "transaction-approval-status")) - (:vendor args) (assoc :transaction/vendor (:vendor args)))] - - (seq (:accounts args)) (conj (maybe-code-accounts i (:accounts args) locations)))) + (map (fn [i] + `(upsert-entity ~(cond-> i + (:approval_status args) (assoc :transaction/approval-status (enum->keyword (:approval_status args) "transaction-approval-status")) + (:vendor args) (assoc :transaction/vendor (:vendor args)) + (seq (:accounts args)) (assoc :transaction/accounts (maybe-code-accounts i (:accounts args) locations))))) transactions) (:id context)) {:message (str "Successfully coded " (count all-ids) " transactions.")})) @@ -438,7 +437,7 @@ (when-not (dollars= (- (:transaction/amount transaction)) invoice-amount) (throw (ex-info "Amounts don't match" {:validation-error "Amounts don't match"}))) - (let [payment-tx (i-transactions/add-new-payment [(dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id)] + (let [payment-tx (i-transactions/add-new-payment (dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id) (map (fn [id] (let [entity (dc/pull db [:invoice/vendor :db/id :invoice/total] id)] [(-> entity :invoice/vendor :db/id) @@ -476,7 +475,7 @@ (when (:transaction/payment transaction) (throw (ex-info "Transaction already linked" {:validation-error "Transaction already linked"}))) - (let [payment-tx (i-transactions/add-new-payment [(dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id)] + (let [payment-tx (i-transactions/add-new-payment (dc/pull db [:transaction/amount :transaction/date :db/id] transaction_id) (map (fn [id] (let [entity (dc/pull db [:invoice/vendor :db/id :invoice/total] id)] [(-> entity :invoice/vendor :db/id) diff --git a/src/clj/auto_ap/import/transactions.clj b/src/clj/auto_ap/import/transactions.clj index a9f85c80..51245ed9 100644 --- a/src/clj/auto_ap/import/transactions.clj +++ b/src/clj/auto_ap/import/transactions.clj @@ -2,6 +2,7 @@ (:require [auto-ap.datomic :refer [audit-transact conn random-tempid remove-nils]] [auto-ap.datomic.accounts :as a] + [iol-ion.tx :refer [upsert-entity]] [auto-ap.datomic.checks :as d-checks] [auto-ap.datomic.transaction-rules :as tr] [auto-ap.datomic.transactions :as d-transactions] @@ -109,10 +110,20 @@ (first considerations) []))) -(defn add-new-payment [[transaction :as tx] [[vendor] :as invoice-payments] bank-account-id client-id] +(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)] - (-> tx + (-> [`(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))}]))] (conj {:payment/bank-account bank-account-id :payment/client client-id @@ -129,17 +140,7 @@ {:db/id invoice-id :invoice/outstanding-balance 0.0 :invoice/status :invoice-status/paid}]) - invoice-payments)) - (update 0 assoc - :transaction/payment payment-id - :transaction/approval-status :transaction-approval-status/approved - :transaction/vendor vendor - :transaction/location "A") - (conj [:reset (:db/id transaction) :transaction/accounts - [#:transaction-account - {:account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"])) - :location "A" - :amount (Math/abs (:transaction/amount transaction))}]])))) + invoice-payments))))) (defn extract-check-number [{:transaction/keys [description-original]}] (if-let [[_ _ check-number] (re-find #"(?i)check(card|[^0-9]+([0-9]*))" description-original)]