;; This buffer is for Clojure experiments and evaluation. ;; Press C-j to evaluate the last expression. ;; You can also press C-u C-j to evaluate the expression and pretty-print its result. (init-repl) (def best 17592232929447) best (def others (->> (dc/q '[:find ?v :in $ [?name ...] ?b :where [?v :vendor/name ?name] (not [(= ?v ?b)])] (dc/db conn) ["CCP Grubhub" "CCP Grub Hub" "CCP GrubHub"] best) (map first) (into #{}))) (count others) #_@(dc/transact auto-ap.datomic/conn (map (fn [o] [:db/retractEntity o]) others)) (count (for [[incoming incoming-attr from-vendor] (dc/q {:find '[?x ?a2 ?vendor-from] :in '[$ [?a ...] [?vendor-from ...] ] :where ['[?x ?a ?vendor-from] '[?a :db/ident ?a2]]} (dc/db conn) #{:expected-deposit/vendor, :invoice/vendor, :journal-entry/vendor, :payment/vendor, :sales-order/vendor, :sales-refund/vendor, :transaction/vendor, :transaction-rule/vendor, :cash-drawer-shift/vendor} others) part [[:db/retract incoming incoming-attr from-vendor] [:db/add incoming incoming-attr best]]] part )) (auto-ap.datomic/audit-transact-batch (for [[incoming incoming-attr from-vendor] (dc/q {:find '[?x ?a2 ?vendor-from] :in '[$ [?a ...] [?vendor-from ...] ] :where ['[?x ?a ?vendor-from] '[?a :db/ident ?a2]]} (dc/db conn) #{:expected-deposit/vendor, :invoice/vendor, :journal-entry/vendor, :payment/vendor, :sales-order/vendor, :sales-refund/vendor, :transaction/vendor, :transaction-rule/vendor, :cash-drawer-shift/vendor} others) part [[:db/retract incoming incoming-attr from-vendor] [:db/add incoming incoming-attr best]]] part ) {:user/name "Fixing duplicate vendors"}) (set (map second (dc/q '[:find ?x ?a2 ?vendor-from :in $ [?a ...] [?vendor-from ...] :where [?x ?a ?vendor-from] [?a :db/ident ?a2]] (dc/db conn) #{ :invoice/vendor, :journal-entry/vendor, :payment/vendor, :sales-order/vendor, :sales-refund/vendor, :transaction/vendor, :transaction-rule/vendor, :cash-drawer-shift/vendor} others))) (->> (dc/q '[:find ?v ?c (count ?e) :in $ ?v :where [?v :vendor/name] (or-join [?v ?c ?e] (and [?e :invoice/vendor ?v] [?e :invoice/client ?c]) (and [?e :transaction/vendor ?v] [?e :transaction/client ?c]) (and [?e :journal-entry/vendor ?v] [?e :journal-entry/client ?c]))] (dc/db conn) best) (map (fn [[v c cnt]] #:vendor-usage {:vendor v :client c :key (str v "-" c) :count cnt}))) (auto-ap.datomic/audit-transact-batch (for [[e a] (dc/q '[:find ?e ?a :in $$ [?tx ...] [?other ...] ?false-best :where [$$ ?e ?a ?false-best ?tx true] [$$ ?e ?a ?other ?tx false] [$$ ?other :vendor/name ?vn] [(clojure.string/includes? ?vn "rub")] ] (dc/history (dc/db conn)) (map (comp dc/t->tx :t) (dc/tx-range (dc/log conn) #inst "2023-06-06T21:00:00-08:00" #inst "2023-06-06T22:31:00-08:00")) #_(dc/tx-range (dc/log conn) #inst "2023-06-06T22:15:00-08:00" #inst "2023-06-06T22:31:00-08:00") others 17592232586913) part [[:db/retract e a 17592232586913] [:db/add e a 17592270032394]]] part ) {:user/name "re-fixing grub-hub"}) (map :t (dc/tx-range (dc/log conn) #inst "2023-06-06T21:00:00-08:00" #inst "2023-06-06T22:31:00-08:00")) (dc/pull (dc/db conn) '[*] 17592232929447) (let [best 17592232586918 others (->> (dc/q '[:find ?v :in $ [?name ...] ?b :where [?v :vendor/name ?name] (not [(= ?v ?b)])] (dc/db conn) ["CCP Uber Eats" "CCP UBER" "CCP Ubereats" "CCP Uber Eats MP" "CCP Uber Eats SC" "CCP UberEats" "CCP Ubereats" "CCP Uber"] best) (map first) (into #{}))] (auto-ap.datomic/audit-transact-batch (for [[incoming incoming-attr from-vendor] (dc/q {:find '[?x ?a2 ?vendor-from] :in '[$ [?a ...] [?vendor-from ...] ] :where ['[?x ?a ?vendor-from] '[?a :db/ident ?a2]]} (dc/db conn) #{:expected-deposit/vendor, :invoice/vendor, :journal-entry/vendor, :payment/vendor, :sales-order/vendor, :sales-refund/vendor, :transaction/vendor, :transaction-rule/vendor, :cash-drawer-shift/vendor} others) part [[:db/retract incoming incoming-attr from-vendor] [:db/add incoming incoming-attr best]]] part ) {:user/name "Fixing duplicate vendors"}) @(dc/transact auto-ap.datomic/conn (map (fn [o] [:db/retractEntity o]) others))) (require '[datomic.api :as dc]) (require '[auto-ap.datomic :refer [conn]]) (user/init-repl) (auto-ap.datomic/audit-transact-batch (for [[bad] (seq (dc/q '[:find ?x ?vn :in $ :where [?x :vendor/name ?vn] (not [_ :expected-deposit/vendor ?x]) (not [_ :invoice/vendor ?x]) (not [_ :journal-entry/vendor ?x]) (not [_ :payment/vendor ?x]) (not [_ :sales-order/vendor ?x]) (not [_ :payment/vendor ?x]) (not [_ :sales-refund/vendor ?x]) (not [_ :transaction/vendor ?x]) (not [_ :transaction-rule/vendor ?x]) (not [_ :cash-drawer-shift/vendor ?x])] (dc/db conn)))] [:db/retractEntity bad]) {:user/name "fix-unused-vendors"}) (user/init-repl) (seq (datomic.api/q '[:find ?v ?vn ?code ?a :in $ [?v ...] [?a ...] :where [?x ?a ?v] [?v :vendor/name ?vn] [?x :journal-entry/client ?c] [?c :client/code ?code]] (datomic.api/db auto-ap.datomic/conn) [17592298912094 17592298933107 17592299151482] #{:expected-deposit/vendor, :invoice/vendor, :journal-entry/vendor, :payment/vendor, :sales-order/vendor, :sales-refund/vendor, :transaction/vendor, :transaction-rule/vendor, :cash-drawer-shift/vendor} ))