continued migration
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -16,10 +16,10 @@
|
|||||||
[datomic.api :as dc]))
|
[datomic.api :as dc]))
|
||||||
|
|
||||||
(defn bank-accounts-card [request]
|
(defn bank-accounts-card [request]
|
||||||
(com/card {:class "inline-block"}
|
(com/card {:class "inline-block " }
|
||||||
[:div.p-4
|
[:div.p-4
|
||||||
[:h1.text-2xl.font-bold "Bank Accounts"]
|
[:h1.text-2xl.font-bold "Bank Accounts"]
|
||||||
[:div {:class "max-h-[800px] overflow-scroll"}
|
[:div {:class "max-h-[900px] overflow-scroll"}
|
||||||
(for [c (:clients request)
|
(for [c (:clients request)
|
||||||
b (:client/bank-accounts (dc/pull (dc/db conn) '[{:client/bank-accounts
|
b (:client/bank-accounts (dc/pull (dc/db conn) '[{:client/bank-accounts
|
||||||
|
|
||||||
@@ -95,15 +95,17 @@ valid-clients (extract-client-ids (:clients request)
|
|||||||
(coerce/to-date (time/now))])
|
(coerce/to-date (time/now))])
|
||||||
(sort-by first))]
|
(sort-by first))]
|
||||||
(com/card {:class "w-full h-full p-4"}
|
(com/card {:class "w-full h-full p-4"}
|
||||||
[:canvas.w-full.h-full {:x-data (hx/json {:chart nil
|
[:h1.text-2xl.font-bold.text-slate-700 "Gross sales, last 14 days"]
|
||||||
:labels (map first totals)
|
[:div.w-full.h-full
|
||||||
:data (map second totals)})
|
[:canvas.w-full.h-full.p-8 {:x-data (hx/json {:chart nil
|
||||||
:x-init " new Chart($el, {
|
:labels (map first totals)
|
||||||
|
:data (map second totals)})
|
||||||
|
:x-init " new Chart($el, {
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
data: {
|
data: {
|
||||||
labels: labels,
|
labels: labels,
|
||||||
datasets: [{
|
datasets: [{
|
||||||
label: 'Gross Sales',
|
label: 'Total invoice spend',
|
||||||
data: data,
|
data: data,
|
||||||
borderWidth: 1
|
borderWidth: 1
|
||||||
}]
|
}]
|
||||||
@@ -117,19 +119,71 @@ valid-clients (extract-client-ids (:clients request)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});"}])))
|
});"}]])))
|
||||||
|
|
||||||
|
(defn expense-pie-card [request]
|
||||||
|
(let [valid-clients (extract-client-ids (:clients request)
|
||||||
|
(:client-id request)
|
||||||
|
(when (:client-code request)
|
||||||
|
[:client/code (:client-code request)]))
|
||||||
|
totals
|
||||||
|
(->> (dc/q '[:find ?an (sum ?amt)
|
||||||
|
:with ?iea
|
||||||
|
:in $ [?clients ?start-date ?end-date]
|
||||||
|
:where [(iol-ion.query/scan-invoices $ ?clients ?start-date ?end-date) [[?e _ ?sort-default] ...]]
|
||||||
|
[?e :invoice/total ?total]
|
||||||
|
[?e :invoice/expense-accounts ?iea]
|
||||||
|
[?iea :invoice-expense-account/account ?ea]
|
||||||
|
[?iea :invoice-expense-account/amount ?amt]
|
||||||
|
[?ea :account/name ?an]]
|
||||||
|
(dc/db conn)
|
||||||
|
[valid-clients
|
||||||
|
(coerce/to-date (time/plus (time/now) (time/months -1)))
|
||||||
|
(coerce/to-date (time/now))])
|
||||||
|
(sort-by last)
|
||||||
|
(reverse)
|
||||||
|
(take 5))]
|
||||||
|
(com/card {:class "w-full h-full p-4"}
|
||||||
|
[:h1.text-2xl.font-bold.text-slate-700
|
||||||
|
"Expenses, last month"]
|
||||||
|
[:div.w-full.h-full
|
||||||
|
[:canvas.w-full.h-full.p-8 {:x-data (hx/json {:chart nil
|
||||||
|
:labels (map first totals)
|
||||||
|
:data (map second totals)})
|
||||||
|
:x-init " new Chart($el, {
|
||||||
|
type: 'pie',
|
||||||
|
data: {
|
||||||
|
labels: labels,
|
||||||
|
datasets: [{
|
||||||
|
label: 'Gross Sales',
|
||||||
|
data: data,
|
||||||
|
borderWidth: 1
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
responsive: true,
|
||||||
|
maintainAspectRatio: false,
|
||||||
|
|
||||||
|
}
|
||||||
|
});"}]])))
|
||||||
|
|
||||||
(defn- page-contents [request]
|
(defn- page-contents [request]
|
||||||
[:div
|
[:div
|
||||||
[:div {:class "grid grid-cols-1 lg:grid-cols-2 2xl:grid-cols-3 gap-4 auto-rows-fr"}
|
[:div {:class "grid grid-cols-1 lg:grid-cols-2 2xl:grid-cols-3 gap-4 auto-rows-fr max-h-[970px]"}
|
||||||
[:div (com/card {:class "w-full h-full"} [:div.w-full.h-full "report-1"])]
|
[:div (expense-pie-card request)]
|
||||||
[:div "hi"]
|
[:div (com/card {:class "w-full h-full p-4"}
|
||||||
|
[:h1.text-2xl.font-bold.text-gray-700
|
||||||
|
"Tasks"])]
|
||||||
[:div.row-span-2
|
[:div.row-span-2
|
||||||
(bank-accounts-card request)]
|
(bank-accounts-card request)]
|
||||||
|
|
||||||
[:div
|
[:div
|
||||||
(sales-chart-card request)]
|
(sales-chart-card request)]
|
||||||
[:div.bg-slate-300.p-4 "hi"]
|
[:div
|
||||||
|
(com/card {:class "w-full h-full p-4"}
|
||||||
|
[:h1.text-2xl.font-bold.text-gray-700
|
||||||
|
"Tasks"])
|
||||||
|
]
|
||||||
] ])
|
] ])
|
||||||
|
|
||||||
(defn page [request]
|
(defn page [request]
|
||||||
|
|||||||
@@ -213,6 +213,7 @@
|
|||||||
set)]
|
set)]
|
||||||
(handler (assoc request :trimmed-clients valid-clients)))))
|
(handler (assoc request :trimmed-clients valid-clients)))))
|
||||||
|
|
||||||
|
|
||||||
(defn table-route [grid-spec & {:keys [parse-query-params?] :or {parse-query-params? true}}]
|
(defn table-route [grid-spec & {:keys [parse-query-params?] :or {parse-query-params? true}}]
|
||||||
(cond-> (fn table [{:keys [identity] :as request}]
|
(cond-> (fn table [{:keys [identity] :as request}]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user