make normal users fast.

This commit is contained in:
2023-01-17 08:28:19 -08:00
parent 273e9685cc
commit e066741432

View File

@@ -1,7 +1,7 @@
(ns auto-ap.ssr.company.company-1099 (ns auto-ap.ssr.company.company-1099
(:require (:require
[auto-ap.datomic :refer [conn remove-nils]] [auto-ap.datomic :refer [conn remove-nils]]
[auto-ap.graphql.utils :refer [can-see-client?]] [auto-ap.graphql.utils :refer [can-see-client? is-admin?]]
[auto-ap.shared-views.company.sidebar :refer [company-side-bar]] [auto-ap.shared-views.company.sidebar :refer [company-side-bar]]
[auto-ap.ssr-routes :as ssr-routes] [auto-ap.ssr-routes :as ssr-routes]
[auto-ap.ssr.ui :refer [base-page html-response]] [auto-ap.ssr.ui :refer [base-page html-response]]
@@ -23,37 +23,64 @@
(d/db conn) user) (d/db conn) user)
(map first) (map first)
set)] set)]
(->> (d/q '[:find (->> (if (is-admin? user)
(pull ?c [:client/code :db/id]) (d/q '[:find
(pull ?v [:db/id (pull ?c [:client/code :db/id])
:vendor/name (pull ?v [:db/id
{:vendor/legal-entity-1099-type [:db/ident]} :vendor/name
{:vendor/legal-entity-tin-type [:db/ident]} {:vendor/legal-entity-1099-type [:db/ident]}
{:vendor/address [:address/street1 {:vendor/legal-entity-tin-type [:db/ident]}
:address/city {:vendor/address [:address/street1
:address/state :address/city
:address/zip]} :address/state
:vendor/legal-entity-first-ein :address/zip]}
:vendor/legal-entity-first-name :vendor/legal-entity-first-ein
:vendor/legal-entity-middle-name :vendor/legal-entity-first-name
:vendor/legal-entity-last-name]) :vendor/legal-entity-middle-name
(sum ?a) :vendor/legal-entity-last-name])
:with ?d (sum ?a)
:in $ :with ?d
:where :in $
[?p :payment/date ?d ] :where
[(>= ?d #inst "2022-01-01T08:00")] [?p :payment/date ?d ]
[(< ?d #inst "2023-01-01T08:00")] [(>= ?d #inst "2022-01-01T08:00")]
[?p :payment/client ?c] [(< ?d #inst "2023-01-01T08:00")]
[?p :payment/amount ?a] [?p :payment/type :payment-type/check]
[?p :payment/vendor ?v]] [?p :payment/client ?c]
(d/db conn) [?p :payment/amount ?a]
) [?p :payment/vendor ?v]]
(d/db conn))
(d/q '[:find
(pull ?c [:client/code :db/id])
(pull ?v [:db/id
: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)
:with ?d
:in $ [?c ...]
:where
[?p :payment/client ?c]
[?p :payment/date ?d ]
[(>= ?d #inst "2022-01-01T08:00")]
[(< ?d #inst "2023-01-01T08:00")]
[?p :payment/type :payment-type/check]
[?p :payment/amount ?a]
[?p :payment/vendor ?v]]
(d/db conn)
clients))
(filter (fn [[_ _ a]] (filter (fn [[_ _ a]]
(>= (or a 0.0) 600.0))) (>= (or a 0.0) 600.0)))
(filter (comp clients :db/id first))
(take 200) (take 200)
(sort-by (fn [[client _ amount]] (sort-by (fn [[client _ amount]]
[(:client/code client ) amount]) )))) [(:client/code client ) amount]) ))))