57 lines
3.5 KiB
Clojure
57 lines
3.5 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.
|
|
|
|
|
|
(user/init-repl)
|
|
|
|
(clojure.data.csv/write-csv *out*
|
|
|
|
(->> (d/q '[:find
|
|
(pull ?c [:client/code])
|
|
(pull ?v [:vendor/name
|
|
{:vendor/legal-entity-1099-type [:db/ident]}
|
|
{:vendor/legal-entity-tin-type [:db/ident]}
|
|
{:vendor/address [:address/street1
|
|
:address/city
|
|
:address/state
|
|
:address/zip]}
|
|
:vendor/legal-entity-first-ein
|
|
:vendor/legal-entity-first-name
|
|
:vendor/legal-entity-middle-name
|
|
:vendor/legal-entity-last-name])
|
|
(sum ?a)
|
|
:in $
|
|
:where [?p :payment/date ?d ]
|
|
[(>= ?d #inst "2022-01-01T08:00")]
|
|
[(< ?d #inst "2023-01-01T08:00")]
|
|
[?p :payment/client ?c]
|
|
[?p :payment/amount ?a]
|
|
[?p :payment/type :payment-type/check]
|
|
[?p :payment/vendor ?v]]
|
|
(d/db auto-ap.datomic/conn))
|
|
(filter (fn [[_ _ a]]
|
|
(>= a 600.0)))
|
|
(map (fn [[client vendor amount]]
|
|
[(:client/code client)
|
|
(:vendor/name vendor)
|
|
(some-> vendor :vendor/legal-entity-1099-type :db/ident name)
|
|
(-> vendor :vendor/legal-entity-first-name)
|
|
(-> vendor :vendor/legal-entity-middle-name)
|
|
(-> vendor :vendor/legal-entity-last-name)
|
|
(some-> vendor :vendor/legal-entity-tin-type :db/ident name)
|
|
(-> vendor :vendor/legal-entity-tin)
|
|
(-> vendor :vendor/address :address/street1)
|
|
(-> vendor :vendor/address :address/street2)
|
|
(-> vendor :vendor/address :address/city)
|
|
(-> vendor :vendor/address :address/state)
|
|
(-> vendor :vendor/address :address/zip)
|
|
amount
|
|
]))
|
|
(sort )
|
|
(into [["Client" "Vendor Name" "1099 Type" "First Name" "Middle Name" "Last Name" "TIN type" "TIN" "Street" "Street 2" "City" "State" "Zip"]]))
|
|
:quote? (constantly true))
|
|
|