started work on bank comparisons.
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
[auto-ap.ssr.admin.transaction-rules :as admin-rules]
|
||||
[auto-ap.ssr.admin.vendors :as admin-vendors]
|
||||
[auto-ap.ssr.auth :as auth]
|
||||
[auto-ap.ssr.dashboard :as dashboard]
|
||||
[auto-ap.ssr.company :as company]
|
||||
[auto-ap.ssr.company-dropdown :as company-dropdown]
|
||||
[auto-ap.ssr.company.company-1099 :as company-1099]
|
||||
@@ -98,6 +99,7 @@
|
||||
(into admin-vendors/key->handler)
|
||||
(into admin-clients/key->handler)
|
||||
(into admin-rules/key->handler)
|
||||
(into dashboard/key->handler)
|
||||
(into indicators/key->handler)
|
||||
(into payments/key->handler)
|
||||
(into oin/route->handler)))
|
||||
|
||||
73
src/clj/auto_ap/ssr/dashboard.clj
Normal file
73
src/clj/auto_ap/ssr/dashboard.clj
Normal file
@@ -0,0 +1,73 @@
|
||||
(ns auto-ap.ssr.dashboard
|
||||
(:require [auto-ap.datomic :refer [conn]]
|
||||
[auto-ap.routes.dashboard :as d-routes]
|
||||
[auto-ap.routes.utils :refer [wrap-admin
|
||||
wrap-client-redirect-unauthenticated]]
|
||||
[auto-ap.ssr-routes :as ssr-routes]
|
||||
[auto-ap.ssr.components :as com]
|
||||
[auto-ap.ssr.ui :refer [base-page]]
|
||||
[auto-ap.ssr.utils :refer [apply-middleware-to-all-handlers]]
|
||||
[bidi.bidi :as bidi]
|
||||
[datomic.api :as dc]
|
||||
[auto-ap.time :as atime]))
|
||||
|
||||
(defn- page-contents [request]
|
||||
[:div
|
||||
[:h1.text-2xl.font-bold "Bank Accounts"]
|
||||
(com/card {:class "inline-block"}
|
||||
[:div.inline-flex.flex-wrap
|
||||
(for [c (:clients request)
|
||||
b (:client/bank-accounts (dc/pull (dc/db conn) '[{ :client/bank-accounts
|
||||
[:bank-account/current-balance
|
||||
[ :bank-account/current-balance-synced :xform clj-time.coerce/from-date]
|
||||
:bank-account/name
|
||||
{:bank-account/intuit-bank-account [:intuit-bank-account/current-balance
|
||||
[ :intuit-bank-account/last-synced :xform clj-time.coerce/from-date]]}
|
||||
{:bank-account/yodlee-account [:yodlee-account/available-balance
|
||||
[:yodlee-account/last-synced :xform clj-time.coerce/from-date]]}]}]
|
||||
(:db/id c)))]
|
||||
[:div.flex.flex-col.p-4.border-l-2
|
||||
[:div (:client/name c)]
|
||||
[:div (:bank-account/name b)]
|
||||
[:div.inline-flex.justify-between [:div "Ledger Balance"] (format "$%,.2f" (or (:bank-account/current-balance b) 0.0)) ]
|
||||
[:div.inline-flex.justify-end.text-xs.text-gray-400.it (some-> (:bank-account/current-balance-synced b)
|
||||
(atime/unparse-local atime/standard-time)
|
||||
(#(str "Synced " %))) ]
|
||||
[:div.inline-flex.justify-between [:div "Source Balance"] (format "$%,.2f" (or (-> b :bank-account/intuit-bank-account :intuit-bank-account/current-balance)
|
||||
(-> b :bank-account/yodlee-account :yodlee-account/available-balance)
|
||||
0.0))]
|
||||
[:div.inline-flex.justify-end.text-xs.text-gray-400.it (or (some-> (:bank-account/intuit-bank-account b)
|
||||
(:intuit-bank-account/last-synced)
|
||||
(atime/unparse-local atime/standard-time)
|
||||
(#(str "Synced " %)))
|
||||
(some-> (:bank-account/yodlee-account b)
|
||||
(:yodlee-account/last-synced)
|
||||
(atime/unparse-local atime/standard-time)
|
||||
(#(str "Synced " %))))]])]) ])
|
||||
|
||||
(defn page [request]
|
||||
(base-page
|
||||
request
|
||||
(com/page {:nav com/main-aside-nav
|
||||
:client-selection (:client-selection request)
|
||||
:clients (:clients request)
|
||||
:client (:client request)
|
||||
:identity (:identity request)
|
||||
:app-params {:hx-get (bidi/path-for ssr-routes/only-routes
|
||||
::d-routes/page)
|
||||
:hx-trigger "clientSelected from:body"
|
||||
:hx-select "#app-contents"
|
||||
:hx-swap "outerHTML swap:300ms"}
|
||||
|
||||
:request request}
|
||||
(com/breadcrumbs {}
|
||||
[:a {:href (bidi/path-for ssr-routes/only-routes ::d-routes/page)}
|
||||
"Dashboard"])
|
||||
(page-contents request))
|
||||
"Dashboard"))
|
||||
|
||||
(def key->handler
|
||||
( apply-middleware-to-all-handlers
|
||||
{::d-routes/page page}
|
||||
(fn [h]
|
||||
(wrap-client-redirect-unauthenticated (wrap-admin h)))))
|
||||
Reference in New Issue
Block a user