182 lines
7.8 KiB
Clojure
182 lines
7.8 KiB
Clojure
;; 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}
|
|
|
|
))
|