From a206116ba80014607fc0f1aa87c7a7b8cec5bd6e Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Fri, 30 Sep 2022 05:49:43 -0700 Subject: [PATCH] Fixes issue where the db/id of a temporary id is different from the real one. Cash payments always match invoices. --- src/clj/auto_ap/graphql/checks.clj | 6 ++++-- src/clj/auto_ap/ledger.clj | 10 ++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/clj/auto_ap/graphql/checks.clj b/src/clj/auto_ap/graphql/checks.clj index cb2c72ef..7bd9672a 100644 --- a/src/clj/auto_ap/graphql/checks.clj +++ b/src/clj/auto_ap/graphql/checks.clj @@ -33,7 +33,8 @@ [com.walmartlabs.lacinia.util :refer [attach-resolvers]] [config.core :refer [env]] [datomic.api :as d] - [digest]) + [digest] + [clj-time.coerce :as coerce]) (:import (java.io ByteArrayOutputStream) (java.text DecimalFormat) @@ -347,6 +348,7 @@ invoices))) payment (assoc base-payment :payment/type :payment-type/cash + :payment/date (coerce/to-date (last (sort (map :invoice/date invoices)))) :payment/memo memo :payment/status :payment-status/cleared) transaction {:db/id (str "transaction-" (:db/id vendor)) @@ -359,7 +361,7 @@ :transaction/raw-id transaction-id :transaction/vendor (:db/id vendor) :transaction/description-original memo - :transaction/date (:payment/date base-payment) + :transaction/date (:payment/date payment) :transaction/approval-status :transaction-approval-status/approved :transaction/accounts [{:transaction-account/account (:db/id (a/get-account-by-numeric-code-and-sets 21000 ["default"])) :transaction-account/location "A" diff --git a/src/clj/auto_ap/ledger.clj b/src/clj/auto_ap/ledger.clj index 9c105700..a17e5e85 100644 --- a/src/clj/auto_ap/ledger.clj +++ b/src/clj/auto_ap/ledger.clj @@ -425,7 +425,7 @@ (defn transact-with-ledger [transaction id] (let [db (d/db conn) - tx (d/with db transaction) + tx (audit-transact transaction id) affected-entities (->> (:tx-data tx) (map (fn [^datomic.db.Datum x] {:e (:e x) @@ -439,9 +439,11 @@ (map #(entity-change->ledger (:db-after tx) %)) (filter seq)) retractions (map (fn [[_ e]] [:db/retractEntity [:journal-entry/original-entity e]]) affected-entities)] - (audit-transact retractions id) - (audit-transact (into transaction ledger-txs) id))) - + (when (seq retractions) + (audit-transact retractions id)) + (when (seq ledger-txs) + (audit-transact ledger-txs id)) + tx)) (defn transact-batch-with-ledger [txes id] (let [batch-id (.toString (java.util.UUID/randomUUID))]