Script for deleting vendors

This commit is contained in:
2024-05-02 21:35:03 -07:00
parent d54fbbfce0
commit c50b706de9
4 changed files with 688 additions and 7 deletions

View File

@@ -209,4 +209,6 @@
:args [(dc/db conn)]})]
{"id" (:db/id result)
"name" (:vendor/name result)
"hidden" (boolean (:vendor/hidden result))}))))
"hidden" (boolean (:vendor/hidden result))}))))
#_(rebuild-search-index)

View File

@@ -74,10 +74,10 @@
(def name->number
{"gyros and pitas" 40111
"returns" 41100
"returns" 41300
"card payments" 75460
"cash payments" 75452
"cash refunds" 75452
"cash refunds" 41400
"food app payments" 72350
"unknown" 40000
"discounts" 41000
@@ -95,8 +95,8 @@
"uncategorized" 40000
"tax" 25700
"tip" 25500
"card refunds" 75460
"food app refunds" 72350})
"card refunds" 41400
"food app refunds" 41400})
(defn get-payment-items [c date]
(->>

View File

@@ -389,5 +389,62 @@
taptelis-clients)
:separator \tab)
(dc/pull (dc/db conn)
17592316415740)
(comment
(defn cleanup-duplicate-vendors-get-merge []
(with-open [i (io/reader (io/resource "duplicate_vendors.csv"))]
(let [[header & rest] (clojure.data.csv/read-csv i)]
(->> rest
(map (fn [h r]
(into {} (map vector h r))) (repeat header))
(filter (fn [row]
(not= (get row "Ben says don't merge?")
"TRUE")))
(map (fn [row]
{:from (Long/parseLong (get row "vendor_id"))
:to (Long/parseLong (get row "master_vendor_id"))}))
(filter (fn [row]
(not= (:from row) (:to row))))
(into []))))
)
(cleanup-duplicate-vendors-get-merge)
(defn merge-vendor [{:keys [from to]}]
(let [valid-keys #{:transaction/recommended-vendor :cash-drawer-shift/vendor :payment/vendor :journal-entry/vendor :sales-refund/vendor :transaction/vendor :sales-order/vendor :vendor-usage/vendor :transaction-rule/vendor :invoice/vendor :expected-deposit/vendor}
transaction (->> (dc/q {:find '[?x ?a2]
:in '[$ [ ?a2 ...] ?vendor-from]
:where ['[?x ?a2 ?vendor-from] ]}
(dc/db conn)
valid-keys
from)
(mapcat (fn [[src attr]]
[[:db/retract src attr from]
[:db/add src attr to]]))
(into []))]
(auto-ap.datomic/audit-transact-batch transaction {:user/role "VENDOR-DEDUPE-CLEANUP"})
(auto-ap.datomic/audit-transact [[:db/retractEntity from]] {:user/role "VENDOR-DEDUPE-CLEANUP"})))
(doseq [v (cleanup-duplicate-vendors-get-merge)]
(println v)
(merge-vendor v))
(dc/q {:find '[?a2]
:in '[$]
:where ['[?v :vendor/name]
'[_ ?a ?v]
'[?a :db/ident ?a2]]}
(dc/db conn))
)