makes cloud search possible.
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
[auto-ap.datomic :refer [conn pull-attr random-tempid]]
|
||||
[auto-ap.ledger :as l ]
|
||||
[clj-http.core :as http]
|
||||
[clj-http.client :as client]
|
||||
[auto-ap.server]
|
||||
[auto-ap.square.core :as square]
|
||||
[auto-ap.square.core2 :as square2]
|
||||
@@ -24,12 +25,17 @@
|
||||
[unilog.context :as lc]
|
||||
[com.brunobonacci.mulog :as mu]
|
||||
[com.brunobonacci.mulog.buffer :as rb]
|
||||
[datomic.api :as d])
|
||||
[datomic.api :as d]
|
||||
[clojure.data.json :as json]
|
||||
[auto-ap.solr :as solr])
|
||||
(:import
|
||||
(org.apache.commons.io.input BOMInputStream)))
|
||||
|
||||
(defn println-event [item]
|
||||
(printf "%s - %s: %s\n" (:mulog/namespace item) (:mulog/event-name item)
|
||||
(printf "%s - %s:%s %s\n" (:mulog/namespace item) (:mulog/event-name item)
|
||||
(if (:mulog/duration item)
|
||||
(str " " (int (/ (:mulog/duration item) 1000000)) "ms")
|
||||
"")
|
||||
(pr-str (reduce
|
||||
(fn [acc [k v]]
|
||||
(assoc acc k v))
|
||||
@@ -554,14 +560,96 @@
|
||||
:separator \tab))))
|
||||
|
||||
|
||||
(defn fmt-amount [a]
|
||||
(with-precision 2
|
||||
(some-> a
|
||||
bigdec
|
||||
(.setScale 2 java.math.RoundingMode/HALF_UP)
|
||||
(double))))
|
||||
|
||||
(defn index-solr
|
||||
[]
|
||||
)
|
||||
(doseq [batch (->> (dc/qseq {:query '[:find (pull ?i [:db/id :invoice/invoice-number
|
||||
:invoice/total
|
||||
{:invoice/client [:client/code :db/id]
|
||||
:invoice/vendor [:vendor/name :db/id]}
|
||||
:invoice/date])
|
||||
:in $
|
||||
:where [?i :invoice/invoice-number]
|
||||
(not [?i :invoice/status :invoice-status/voided])]
|
||||
:args [
|
||||
(dc/db conn)]})
|
||||
(map (fn [[i]]
|
||||
{"id" (-> i :db/id)
|
||||
"client_id" (-> i :invoice/client :db/id)
|
||||
"client_code" (-> i :invoice/client :client/code)
|
||||
"date" (some-> i :invoice/date c/to-date-time (atime/unparse atime/iso-date) (str "T00:00:00Z"))
|
||||
"amount" (-> i :invoice/total fmt-amount)
|
||||
"number" (-> i :invoice/invoice-number)
|
||||
"vendor_name" (-> i :invoice/vendor :vendor/name)
|
||||
"vendor_id" (-> i :invoice/vendor :db/id)
|
||||
"type" "invoice"
|
||||
}))
|
||||
(partition-all 1000))]
|
||||
(print ".")
|
||||
(flush)
|
||||
(solr/index-documents batch))
|
||||
|
||||
(doseq [batch (->> (dc/qseq {:query '[:find (pull ?i [:db/id :payment/check-number
|
||||
:payment/amount
|
||||
{:payment/client [:client/code :db/id]
|
||||
:payment/vendor [:vendor/name :db/id]}
|
||||
:payment/date])
|
||||
:in $
|
||||
:where [?i :payment/date]
|
||||
(not [?i :payment/status :payment-status/voided])]
|
||||
:args [(dc/db conn)]})
|
||||
(map (fn [[i]]
|
||||
{"id" (-> i :db/id)
|
||||
"client_id" (-> i :payment/client :db/id)
|
||||
"client_code" (-> i :payment/client :client/code)
|
||||
"date" (some-> i :payment/date c/to-date-time (atime/unparse atime/iso-date) (str "T00:00:00Z"))
|
||||
"amount" (-> i :payment/amount fmt-amount)
|
||||
"description" (-> i :payment/check-number)
|
||||
"vendor_name" (-> i :payment/vendor :vendor/name)
|
||||
"vendor_id" (-> i :payment/vendor :db/id)
|
||||
"type" "payment"}))
|
||||
(partition-all 1000))]
|
||||
(print ".")
|
||||
(flush)
|
||||
(solr/index-documents batch))
|
||||
|
||||
(doseq [batch (->> (dc/qseq {:query '[:find (pull ?i [:db/id :transaction/description-original
|
||||
:transaction/amount
|
||||
{:transaction/client [:client/code :db/id]
|
||||
:transaction/vendor [:vendor/name :db/id]}
|
||||
:transaction/date])
|
||||
:in $
|
||||
:where [?i :transaction/description-original]
|
||||
(not [?i :transaction/approval-status :transaction-approval-status/suppressed])]
|
||||
:args [(dc/db conn)]})
|
||||
(map (fn [[i]]
|
||||
{"id" (-> i :db/id)
|
||||
"client_id" (-> i :transaction/client :db/id)
|
||||
"client_code" (-> i :transaction/client :client/code)
|
||||
"date" (some-> i :transaction/date c/to-date-time (atime/unparse atime/iso-date) (str "T00:00:00Z"))
|
||||
"amount" (-> i :transaction/amount fmt-amount)
|
||||
"description" (-> i :transaction/description-original)
|
||||
"vendor_name" (-> i :transaction/vendor :vendor/name)
|
||||
"vendor_id" (-> i :transaction/vendor :db/id)
|
||||
"type" "transaction"}))
|
||||
(partition-all 1000))]
|
||||
(print ".")
|
||||
(flush)
|
||||
(solr/index-documents batch)
|
||||
))
|
||||
|
||||
(defn setup-sales-orders []
|
||||
(doseq [n (->> (dc/qseq {:query '[:find ?s ?c :where [?s :sales-order/client ?c]] :args [(dc/db auto-ap.datomic/conn)]})
|
||||
(map (fn [[s c]]
|
||||
{:db/id s :sales-order/client c}))
|
||||
(partition-all 1000)
|
||||
(take 10))]
|
||||
(partition-all 1000))]
|
||||
(print ".")
|
||||
@(dc/transact auto-ap.datomic/conn n)))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user