Adds gift cards to sales summaries

This commit is contained in:
2024-04-01 16:06:34 -07:00
parent 4c52dbc4d6
commit 3957286624
3 changed files with 55 additions and 23 deletions

View File

@@ -1898,7 +1898,7 @@
:db/cardinality :db.cardinality/one
:db/index true}
{:db/ident :sales-summary/discount
{:db/ident :sales-summary/discount
:db/noHistory true,
:db/valueType :db.type/double
:db/cardinality :db.cardinality/one}
@@ -1922,6 +1922,11 @@
:db/noHistory true,
:db/valueType :db.type/double
:db/cardinality :db.cardinality/one}
{:db/ident :sales-summary/total-gift-card-payments
:db/noHistory true,
:db/valueType :db.type/double
:db/cardinality :db.cardinality/one}
{:db/ident :sales-summary/total-card-refunds
:db/noHistory true,
:db/valueType :db.type/double

View File

@@ -82,12 +82,12 @@
:in $ [?clients ?start-date ?end-date]
:where [(iol-ion.query/scan-sales-orders $ ?clients ?start-date ?end-date) [[?e _ ?sort-default] ...]]
[?e :sales-order/returns ?r]
#_[?e :sales-order/charges ?c]
#_[?c :charge/tax ?tax]]
(dc/db conn)
[[c] date date]))
0.0)
(dc/db conn)
[[c] date date]))
0.0)
:sales-summary/sales-items
@@ -168,6 +168,20 @@
[[c] date date]))
0.0)
:sales-summary/total-gift-card-payments
(or (ffirst (dc/q '[:find (sum ?total)
:with ?c
:in $ [?clients ?start-date ?end-date]
:where [(iol-ion.query/scan-sales-orders $ ?clients ?start-date ?end-date) [[?e _ ?sort-default] ...]]
[?e :sales-order/charges ?c]
[?c :charge/total ?total]
(or [?c :charge/type-name "SQUARE_GIFT_CARD"]
[?c :charge/type-name "WALLET"]
[?c :charge/type-name "GIFT_CARD"])]
(dc/db conn)
[[c] date date]))
0.0)
:sales-summary/total-cash-refunds
(or (ffirst (dc/q '[:find (sum ?t)
:in $ [?clients ?start-date ?end-date]
@@ -200,10 +214,8 @@
:sales-summary/total-food-app-refunds
(or (ffirst (dc/q '[:find (sum ?t)
:in $ [?clients ?start-date ?end-date]
:where
:where [(iol-ion.query/scan-sales-refunds $ ?clients ?start-date ?end-date) [[?e _ ?sort-default] ...]]
(not [?e :sales-refund/type "CASH"])
(not [?e :sales-refund/type "CARD"])
[?e :sales-refund/type "EXTERNAL"]
[?e :sales-refund/total ?t]]
(dc/db conn)
[[c] date date]))

View File

@@ -95,13 +95,20 @@
[(->> (hydrate-results ids-to-retrieve db request))
matching-count]))
(defn get-credits [ss]
(defn get-debits [ss]
{:card-payments (+ (:sales-summary/total-card-payments ss 0.0)
(:sales-summary/total-card-fees ss 0.0)
(- (:sales-summary/total-card-refunds ss 0.0)))
:food-app-payments (+ (:sales-summary/total-food-app-payments ss 0.0)
(:sales-summary/total-food-app-fees ss 0.0)
(- (:sales-summary/total-food-app-refunds ss 0.0)))
:gift-card-payments (+ (:sales-summary/total-gift-card-payments ss 0.0)
(:sales-summary/total-gift-card-fees ss 0.0)
(- (:sales-summary/total-gift-card-refunds ss 0.0)))
#_#_:refunds (+ (:sales-summary/total-food-app-refunds ss 0.0)
(:sales-summary/total-card-refunds ss 0.0)
(:sales-summary/total-cash-refunds ss 0.0))
:fees (- (:sales-summary/total-card-fees ss 0.0))
:cash-payments (+ (:sales-summary/total-cash-payments ss 0.0)
(- (:sales-summary/total-cash-refunds ss 0.0)))
@@ -138,11 +145,11 @@
:sort-key "date"
:render #(some-> % :sales-summary/date (atime/unparse-local atime/normal-date))}
{:key "credits"
:name "Credits"
:name "credits"
:sort-key "credits"
:render (fn [ss]
(let [total-credits (reduce + 0.0 (vals (get-credits ss)))
total-debits (+ (- (+ (reduce + 0.0 (map :sales-summary-item/total (:sales-summary/sales-items ss)))
(let [total-debits (reduce + 0.0 (vals (get-debits ss)))
total-credits (+ (- (+ (reduce + 0.0 (map :sales-summary-item/total (:sales-summary/sales-items ss)))
(reduce + 0.0 (map :sales-summary-item/discount (:sales-summary/sales-items ss))))
(reduce + 0.0 (map :sales-summary-item/tax (:sales-summary/sales-items ss))))
@@ -160,9 +167,9 @@
(reduce + 0.0 (map :sales-summary-item/tax (:sales-summary/sales-items ss)))))]
[:li "Tax: " (format "$%,.2f" (:sales-summary/total-tax ss))]
[:li "Tips: " (format "$%,.2f" (:sales-summary/total-tip ss))]
[:li (com/pill {:color (if (dollars= total-credits total-debits)
[:li (com/pill {:color (if (dollars= total-debits total-credits)
:primary
:red)} "Total: " (format "$%,.2f" total-debits))]])
:red)} "Total: " (format "$%,.2f" total-credits))]])
#_(count))}
@@ -172,21 +179,25 @@
:render (fn [ss]
(let [{:keys [card-payments food-app-payments
cash-payments discounts fees
returns] :as credits} (get-credits ss)
total-credits (reduce + 0.0 (vals credits))
total-debits (+ (- (+ (reduce + 0.0 (map :sales-summary-item/total (:sales-summary/sales-items ss)))
gift-card-payments
returns refunds] :as debits} (get-debits ss)
total-debits (reduce + 0.0 (vals debits))
total-credits (+ (- (+ (reduce + 0.0 (map :sales-summary-item/total (:sales-summary/sales-items ss)))
(reduce + 0.0 (map :sales-summary-item/discount (:sales-summary/sales-items ss))))
(reduce + 0.0 (map :sales-summary-item/tax (:sales-summary/sales-items ss))))
(reduce + 0.0 (map :sales-summary-item/discount (:sales-summary/sales-items ss))))
(reduce + 0.0 (map :sales-summary-item/tax (:sales-summary/sales-items ss))))
(:sales-summary/total-tax ss 0.0)
(:sales-summary/total-tip ss 0.0))]
(:sales-summary/total-tax ss 0.0)
(:sales-summary/total-tip ss 0.0))]
[:ul
[:li "Card Payments: "
(format "$%,.2f" card-payments)]
[:li "Food App Payments: "
(format "$%,.2f" food-app-payments)]
[:li "Gift Card Payments"
(format "$%,.2f" gift-card-payments)]
[:li "Cash Payments: "
(format "$%,.2f" cash-payments)]
@@ -198,11 +209,15 @@
(format "$%,.2f" fees)]
[:li "Returns: "
(format "$%,.2f" returns)]
#_[:li "Refunds: "
(format "$%,.2f" refunds)]
[:li (com/pill {:color (if (dollars= total-credits total-debits)
[:li (com/pill {:color (if (dollars= total-debits total-credits)
:primary
:red)} "Total: " (format "$%,.2f" total-credits))]])
:red)} "Total: " (format "$%,.2f" total-debits))]])
#_(count))}]}))