From 534b6e35f27d1920ed27be8620ede08b9e5c701d Mon Sep 17 00:00:00 2001 From: Bryce Date: Tue, 30 May 2023 12:30:58 -0700 Subject: [PATCH] imports invoices one at a time to avoid duplicating them --- iol_ion/src/iol_ion/tx.clj | 3 +++ src/clj/auto_ap/jobs/ntg.clj | 5 +++-- src/clj/auto_ap/routes/invoices.clj | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/iol_ion/src/iol_ion/tx.clj b/iol_ion/src/iol_ion/tx.clj index d145e245..8ad133db 100644 --- a/iol_ion/src/iol_ion/tx.clj +++ b/iol_ion/src/iol_ion/tx.clj @@ -4,6 +4,9 @@ (:import [java.util UUID])) (def random-tempid iol-ion.utils/random-tempid) +(defn composite-tempid [& pieces] + (format "hashed-%d" (.hashCode (set pieces)))) + (def by iol-ion.utils/by) (def pull-many iol-ion.utils/pull-many) (def remove-nils iol-ion.utils/remove-nils) diff --git a/src/clj/auto_ap/jobs/ntg.clj b/src/clj/auto_ap/jobs/ntg.clj index 71ecf1d9..b945959b 100644 --- a/src/clj/auto_ap/jobs/ntg.clj +++ b/src/clj/auto_ap/jobs/ntg.clj @@ -168,7 +168,7 @@ :content first Double/parseDouble) - invoice {:db/id (random-tempid) + invoice {:db/id (random-tempid ) :invoice/vendor :vendor/cintas :invoice/import-status :import-status/imported :invoice/status :invoice-status/unpaid @@ -268,7 +268,8 @@ (mark-error k) [])))) (into []))] - (audit-transact transaction {:user/name "sysco importer" :user/role "admin"}) + (doseq [t transaction] + (audit-transact [t] {:user/name "sysco importer" :user/role "admin"})) (log/info ::success :count (count transaction) :sample (take 3 transaction))) diff --git a/src/clj/auto_ap/routes/invoices.clj b/src/clj/auto_ap/routes/invoices.clj index 0ccb0e0f..4931501d 100644 --- a/src/clj/auto_ap/routes/invoices.clj +++ b/src/clj/auto_ap/routes/invoices.clj @@ -136,8 +136,8 @@ (defn import->invoice [{:keys [invoice-number source-url customer-identifier account-number total date vendor-code text full-text client-override vendor-override location-override import-status]}] (let [matching-client (cond - account-number (d-clients/exact-match account-number) - customer-identifier (d-clients/best-match customer-identifier) + account-number (:db/id (d-clients/exact-match account-number)) + customer-identifier (:db/id (d-clients/best-match customer-identifier)) client-override (Long/parseLong client-override)) matching-vendor (match-vendor vendor-code vendor-override)