diff --git a/src/clj/auto_ap/ssr/components/aside.clj b/src/clj/auto_ap/ssr/components/aside.clj index 6e30d822..8bdfe276 100644 --- a/src/clj/auto_ap/ssr/components/aside.clj +++ b/src/clj/auto_ap/ssr/components/aside.clj @@ -6,7 +6,8 @@ [auto-ap.routes.admin.excel-invoices :as ei-routes] [auto-ap.routes.admin.import-batch :as ib-routes] [auto-ap.routes.admin.transaction-rules :as transaction-rules] - [auto-ap.routes.admin.vendors :as v-routes] + [auto-ap.routes.admin.vendors :as v-routes] + [auto-ap.routes.pos.sales-summaries :as ss-routes] [auto-ap.routes.invoice :as invoice-route] [auto-ap.routes.ledger :as ledger-routes] [auto-ap.routes.outgoing-invoice :as oi-routes] @@ -90,8 +91,8 @@ (#{::invoice-route/all-page ::invoice-route/unpaid-page ::invoice-route/voided-page ::invoice-route/paid-page ::oi-routes/new ::invoice-route/import-page :invoice-glimpse :invoice-glimpse-textract-invoice} (:matched-route request)) "invoices" - (#{:pos-sales :pos-expected-deposits :pos-tenders :pos-refunds :pos-cash-drawer-shifts} (:matched-route request)) - "sales" + (#{:pos-sales :pos-expected-deposits :pos-tenders :pos-refunds :pos-cash-drawer-shifts ::ss-routes/page} (:matched-route request)) + "sales" (#{::payment-routes/all-page ::payment-routes/pending-page ::payment-routes/cleared-page ::payment-routes/voided-page} (:matched-route request)) "payments" (#{::ledger-routes/all-page ::ledger-routes/external-page ::ledger-routes/external-import-page ::ledger-routes/balance-sheet ::ledger-routes/cash-flows ::ledger-routes/profit-and-loss} (:matched-route request)) @@ -207,12 +208,18 @@ :hx-boost "true"} "Refunds") + (menu-button- {:href (str (bidi/path-for ssr-routes/only-routes + :pos-cash-drawer-shifts) + "?date-range=week") + :active? (= :pos-cash-drawer-shifts (:matched-route request)) + :hx-boost "true"} + "Cash drawer shifts") (menu-button- {:href (str (bidi/path-for ssr-routes/only-routes - :pos-cash-drawer-shifts) + ::ss-routes/page) "?date-range=week") - :active? (= :pos-cash-drawer-shifts (:matched-route request)) + :active? (= ::ss-routes/page (:matched-route request)) :hx-boost "true"} - "Cash drawer shifts")))) + "Summaries")))) (menu-button- {"@click.prevent" "if (selected == 'payments') {selected = null } else { selected = 'payments'} " :icon svg/payments} diff --git a/src/clj/auto_ap/ssr/core.clj b/src/clj/auto_ap/ssr/core.clj index 12cf76c1..611ff0a4 100644 --- a/src/clj/auto_ap/ssr/core.clj +++ b/src/clj/auto_ap/ssr/core.clj @@ -12,7 +12,7 @@ [auto-ap.ssr.admin.excel-invoice :as admin-excel-invoices] [auto-ap.ssr.admin.history :as history] [auto-ap.ssr.admin.import-batch :as import-batch] - [auto-ap.ssr.admin.sales-summaries :as admin-sales-summaries] + [auto-ap.ssr.pos.sales-summaries :as pos-sales-summaries] [auto-ap.ssr.admin.transaction-rules :as admin-rules] [auto-ap.ssr.admin.vendors :as admin-vendors] [auto-ap.ssr.auth :as auth] @@ -85,17 +85,17 @@ (into company-1099/key->handler) (into invoice/key->handler) (into import-batch/key->handler) - (into pos-sales/key->handler) - (into pos-expected-deposits/key->handler) - (into pos-tenders/key->handler) - (into pos-cash-drawer-shifts/key->handler) - (into pos-refunds/key->handler) - (into users/key->handler) - (into admin-accounts/key->handler) - (into admin-excel-invoices/key->handler) - (into admin/key->handler) - (into admin-jobs/key->handler) - (into admin-sales-summaries/key->handler) + (into pos-sales/key->handler) + (into pos-expected-deposits/key->handler) + (into pos-tenders/key->handler) + (into pos-cash-drawer-shifts/key->handler) + (into pos-refunds/key->handler) + (into pos-sales-summaries/key->handler) + (into users/key->handler) + (into admin-accounts/key->handler) + (into admin-excel-invoices/key->handler) + (into admin/key->handler) + (into admin-jobs/key->handler) (into admin-vendors/key->handler) (into admin-clients/key->handler) (into admin-rules/key->handler) diff --git a/src/clj/auto_ap/ssr/admin/sales_summaries.clj b/src/clj/auto_ap/ssr/pos/sales_summaries.clj similarity index 94% rename from src/clj/auto_ap/ssr/admin/sales_summaries.clj rename to src/clj/auto_ap/ssr/pos/sales_summaries.clj index 186780c8..fed3d987 100644 --- a/src/clj/auto_ap/ssr/admin/sales_summaries.clj +++ b/src/clj/auto_ap/ssr/pos/sales_summaries.clj @@ -1,4 +1,4 @@ -(ns auto-ap.ssr.admin.sales-summaries +(ns auto-ap.ssr.pos.sales-summaries (:require [auto-ap.datomic :refer [apply-pagination apply-sort-3 conn merge-query pull-many @@ -6,9 +6,7 @@ [auto-ap.datomic.accounts :as d-accounts] [auto-ap.graphql.utils :refer [extract-client-ids]] [auto-ap.query-params :refer [wrap-copy-qp-pqp]] - [auto-ap.routes.admin.sales-summaries :as route] - [auto-ap.routes.utils - :refer [wrap-admin wrap-client-redirect-unauthenticated]] + [auto-ap.routes.pos.sales-summaries :as route] [auto-ap.ssr-routes :as ssr-routes] [auto-ap.ssr.common-handlers :refer [add-new-entity-handler]] [auto-ap.ssr.components :as com] @@ -16,6 +14,8 @@ [auto-ap.ssr.form-cursor :as fc] [auto-ap.ssr.grid-page-helper :as helper :refer [wrap-apply-sort]] [auto-ap.ssr.hx :as hx] + [auto-ap.ssr.pos.common + :refer [date-range-field*]] [auto-ap.ssr.svg :as svg] [auto-ap.ssr.utils :refer [apply-middleware-to-all-handlers clj-date-schema @@ -48,24 +48,8 @@ "hx-target" "#entity-table" "hx-indicator" "#entity-table"} - #_[:fieldset.space-y-6 - (date-range-field {:value {:start (:start-date (:query-params request)) - :end (:end-date (:query-params request))} - :id "date-range"}) - (com/field {:label "Source"} - (com/select {:name "source" - :class "hot-filter w-full" - :value (:source (:query-params request)) - :placeholder "" - :options (ref->select-options "import-source" :allow-nil? true)})) - - #_(com/field {:label "Code"} - (com/text-input {:name "code" - :id "code" - :class "hot-filter" - :value (:code (:query-params request)) - :placeholder "11101" - :size :small}))]]) + [:fieldset.space-y-6 + (date-range-field* request)]]) (def default-read '[:db/id * @@ -134,6 +118,7 @@ + (defn total-debits [items] (->> items (filter #(= :ledger-side/debit (:ledger-mapped/ledger-side %))) @@ -149,7 +134,7 @@ (def grid-page (helper/build {:id "entity-table" :id-fn :db/id - :nav com/admin-aside-nav + :nav com/main-aside-nav :fetch-page fetch-page :page-specific-nav filters :query-schema query-schema @@ -159,11 +144,11 @@ :db/id (:db/id entity))} svg/pencil)]) :oob-render - (fn [_request] - []) + (fn [request] + [(assoc-in (date-range-field* request) [1 :hx-swap-oob] true)]) :breadcrumbs [[:a {:href (bidi/path-for ssr-routes/only-routes - :admin)} - "Admin"] + :company)} + "POS"] [:a {:href (bidi/path-for ssr-routes/only-routes ::route/page)} @@ -219,10 +204,6 @@ :primary :red)} "Total: " (format "$%,.2f" total-credits))]]))}]})) -;; Architecture: Sales summary maintains granular detail (line items, fee types) -;; and is aggregated into ledger entries by account/location. Manual adjustments -;; are preserved during automatic recalculation. - (def row* (partial helper/row* grid-page)) (def table* (partial helper/table* grid-page)) @@ -526,8 +507,4 @@ (wrap-apply-sort grid-page) (wrap-merge-prior-hx) (wrap-schema-enforce :query-schema query-schema) - (wrap-schema-enforce :hx-schema query-schema) - (wrap-admin) - (wrap-client-redirect-unauthenticated))))) - - + (wrap-schema-enforce :hx-schema query-schema))))) diff --git a/src/cljc/auto_ap/routes/admin/sales_summaries.cljc b/src/cljc/auto_ap/routes/pos/sales_summaries.cljc similarity index 68% rename from src/cljc/auto_ap/routes/admin/sales_summaries.cljc rename to src/cljc/auto_ap/routes/pos/sales_summaries.cljc index 9e1e8889..be26c7ff 100644 --- a/src/cljc/auto_ap/routes/admin/sales_summaries.cljc +++ b/src/cljc/auto_ap/routes/pos/sales_summaries.cljc @@ -1,9 +1,7 @@ -(ns auto-ap.routes.admin.sales-summaries) +(ns auto-ap.routes.pos.sales-summaries) (def routes {"" {:get ::page :put ::edit-wizard-submit} "/table" ::table - ["/" [#"\d+" :db/id]] {:get ::edit-wizard } - "/edit/navigate" ::edit-wizard-navigate - "/edit/sales-summary-item" ::new-summary-item}) \ No newline at end of file + "/edit/sales-summary-item" ::new-summary-item}) diff --git a/src/cljc/auto_ap/ssr_routes.cljc b/src/cljc/auto_ap/ssr_routes.cljc index 247734f6..0f2ec820 100644 --- a/src/cljc/auto_ap/ssr_routes.cljc +++ b/src/cljc/auto_ap/ssr_routes.cljc @@ -12,7 +12,7 @@ [auto-ap.routes.transactions :as t-routes] [auto-ap.routes.admin.clients :as ac-routes] - [auto-ap.routes.admin.sales-summaries :as ss-routes] + [auto-ap.routes.pos.sales-summaries :as ss-routes] [auto-ap.routes.admin.transaction-rules :as tr-routes])) (def routes {"impersonate" :impersonate