diff --git a/src/clj/auto_ap/datomic/ledger.clj b/src/clj/auto_ap/datomic/ledger.clj index abf6a89d..59d4d384 100644 --- a/src/clj/auto_ap/datomic/ledger.clj +++ b/src/clj/auto_ap/datomic/ledger.clj @@ -9,6 +9,34 @@ [clj-time.coerce :as c] [clj-time.core :as time])) +(def export-read + [:journal-entry/external-id + :journal-entry/cleared + :journal-entry/alternate-description + :journal-entry/date + :journal-entry/note + :journal-entry/amount + :journal-entry/source + :journal-entry/cleared-against + :journal-entry/original-entity + {:journal-entry/client [:client/name :client/code :db/id] + :journal-entry/vendor [:vendor/name :db/id] + :journal-entry/line-items [:journal-entry-line/location + :journal-entry-line/debit + :journal-entry-line/credit + {:journal-entry-line/account [:bank-account/include-in-reports + :bank-account/bank-name + :bank-account/code + :bank-account/visible + :bank-account/name + :bank-account/number + :account/code + :account/name + :account/numeric-code + :account/location + {:account/type [:db/ident :db/id]} + {:bank-account/type [:db/ident :db/id]}]}]}]) + (defn raw-graphql-ids [db args] (log/info "ARGS" args) diff --git a/src/clj/auto_ap/routes/exports.clj b/src/clj/auto_ap/routes/exports.clj index e8b0d5b7..26d28177 100644 --- a/src/clj/auto_ap/routes/exports.clj +++ b/src/clj/auto_ap/routes/exports.clj @@ -185,6 +185,33 @@ (list) (first (d-ledger/get-graphql {:count Integer/MAX_VALUE :client-code (query-params "client-code")}))))) + (GET "/ledger2/export" {:keys [query-params identity]} + (log/info "exporting for " (query-params "client-code")) + (assert-admin identity) + (statsd/time! [(str "export.time") {:tags #{(client-tag query-params) + "export:ledger2"}}] + (let [results (->> (d/q `[:find (pull ?e ~d-ledger/export-read) + :in $ ?c + :where [?e :journal-entry/client ?c]] + (d/db conn) + [:client/code (query-params "client-code")]) + ) + tf-result (transduce (comp + (map first) + (filter (fn [je] + (every? + (fn [jel] + (let [include-in-reports (-> jel :journal-entry-line/account :bank-account/include-in-reports)] + (or (nil? include-in-reports) + (true? include-in-reports)))) + (:journal-entry/line-items je)))) + (map <-graphql)) + conj + (list) + results)] + tf-result))) + + (GET "/accounts/export" {:keys [query-params identity]} (assert-admin identity) diff --git a/src/clj/auto_ap/server.clj b/src/clj/auto_ap/server.clj index 81d92575..64499f75 100644 --- a/src/clj/auto_ap/server.clj +++ b/src/clj/auto_ap/server.clj @@ -108,6 +108,7 @@ (add-shutdown-hook! shutdown-mount) (start-server :port 9000 :bind "0.0.0.0" #_#_:handler (cider-nrepl-handler)) + (set! nrepl.middleware.print/*print-fn* clojure.pprint/pprint) (apply mount/start-without without))) (comment