missing file.
This commit is contained in:
44
src/clj/auto_ap/background/vendor.clj
Normal file
44
src/clj/auto_ap/background/vendor.clj
Normal file
@@ -0,0 +1,44 @@
|
||||
(ns auto-ap.background.vendor
|
||||
(:require [auto-ap.datomic.invoices :as d-invoices]
|
||||
[auto-ap.datomic :refer [uri conn]]
|
||||
[datomic.api :as d]
|
||||
[auto-ap.time :as time]
|
||||
[clj-time.coerce :as coerce]
|
||||
[mount.core :as mount]
|
||||
[yang.scheduler :as scheduler]
|
||||
[unilog.context :as lc]
|
||||
[clojure.tools.logging :as log]))
|
||||
|
||||
(defn refresh-vendor-usages []
|
||||
(lc/with-context {:source "refreshing vendor-usages"}
|
||||
|
||||
(try
|
||||
(->> {:query {:find ['?v '?c '(count ?e)]
|
||||
:in ['$]
|
||||
: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]))]}
|
||||
:args [(d/db conn)]}
|
||||
(d/query)
|
||||
(map (fn [[v c cnt]]
|
||||
#:vendor-usage {:vendor v
|
||||
:client c
|
||||
:key (str v "-" c)
|
||||
:count cnt}))
|
||||
(d/transact conn)
|
||||
deref)
|
||||
(log/info "updated vendor usage")
|
||||
(catch Exception e
|
||||
(log/error e)))))
|
||||
|
||||
(mount/defstate refresh-vendor-usages-worker
|
||||
:start (scheduler/every (* 60 60 1000) refresh-vendor-usages)
|
||||
:stop (scheduler/stop refresh-vendor-usages))
|
||||
Reference in New Issue
Block a user