From 047a0c1f8e82e82b27eefc465ce2402fd96d1b5a Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Sat, 4 May 2019 08:00:18 -0700 Subject: [PATCH] checks have date ranges. --- src/clj/auto_ap/datomic/checks.clj | 11 ++++++++++- src/clj/auto_ap/graphql.clj | 1 + src/cljs/auto_ap/views/pages/checks.cljs | 19 ++++++++++++++++++- .../views/pages/transactions/table.cljs | 3 --- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/clj/auto_ap/datomic/checks.clj b/src/clj/auto_ap/datomic/checks.clj index 2f71fa6b..508d3580 100644 --- a/src/clj/auto_ap/datomic/checks.clj +++ b/src/clj/auto_ap/datomic/checks.clj @@ -1,6 +1,6 @@ (ns auto-ap.datomic.checks (:require [datomic.api :as d] - [auto-ap.datomic :refer [uri]] + [auto-ap.datomic :refer [uri merge-query]] [auto-ap.graphql.utils :refer [limited-clients]] [clojure.set :refer [rename-keys]] [clj-time.coerce :as c])) @@ -57,6 +57,15 @@ '[?e :payment/amount ?amount]) (:status args) (add-arg '?status (:status args) '[?e :payment/status ?status]) + (:start (:date-range args)) (merge-query {:query {:in '[?start-date] + :where ['[?e :payment/date ?date] + '[(>= ?date ?start-date)]]} + :args [(c/to-date (:start (:date-range args)))]}) + + (:end (:date-range args)) (merge-query {:query {:in '[?end-date] + :where ['[?e :payment/date ?date] + '[(<= ?date ?end-date)]]} + :args [(c/to-date (:end (:date-range args)))]}) check-number-like (add-arg '?check-number-like check-number-like '[?e :payment/check-number ?check-number-like] #_'[(.contains ^String ?check-number ?check-number-like)]))] diff --git a/src/clj/auto_ap/graphql.clj b/src/clj/auto_ap/graphql.clj index 112f1c0e..03fee929 100644 --- a/src/clj/auto_ap/graphql.clj +++ b/src/clj/auto_ap/graphql.clj @@ -349,6 +349,7 @@ :payment_page {:type '(list :payment_page) :args {:client_id {:type :id} :vendor_id {:type :id} + :date_range {:type :date_range} :check_number_like {:type 'String} :start {:type 'Int} :sort_by {:type 'String} diff --git a/src/cljs/auto_ap/views/pages/checks.cljs b/src/cljs/auto_ap/views/pages/checks.cljs index ea978c84..7d173e29 100644 --- a/src/cljs/auto_ap/views/pages/checks.cljs +++ b/src/cljs/auto_ap/views/pages/checks.cljs @@ -8,6 +8,7 @@ [clojure.spec.alpha :as s] [auto-ap.views.components.sorter :refer [sorted-column]] [auto-ap.views.components.vendor-filter :refer [vendor-filter]] + [auto-ap.views.components.date-range-filter :refer [date-range-filter]] [auto-ap.views.components.layouts :refer [side-bar-layout]] [auto-ap.views.components.typeahead :refer [typeahead]] [auto-ap.views.components.paginator :refer [paginator]] @@ -80,7 +81,7 @@ ::received (fn [db [_ data]] (-> db - (assoc ::payment-page (first (:payment-page data))) + (update ::payment-page merge (first (:payment-page data))) (assoc-in [:status :loading] false)))) (re-frame/reg-event-fx @@ -100,6 +101,16 @@ (assoc-in updated [::params :vendor-id] value)) updated)))) +(re-frame/reg-event-fx + ::change-selected-date-range + (fn [{:keys [db]} [_ key value]] + (let [[key] key + updated (-> db + (assoc-in [::payment-page :date-range-filter key] value) + (assoc-in [::params :date-range key] value))] + {:dispatch [::params-change (::params updated)] + :db updated}))) + (re-frame/reg-event-fx ::check-number-like-current-changed (fn [{:keys [db]} [_ params check-like]] @@ -246,6 +257,12 @@ :value (:vendor-filter @(re-frame/subscribe [::payment-page])) :vendors @(re-frame/subscribe [::subs/vendors])}]] + [:p.menu-label "Date Range"] + [:div + [date-range-filter + {:on-change-event [::change-selected-date-range] + :value (:date-range-filter @(re-frame/subscribe [::payment-page]))}]] + [:p.menu-label "Check #"] [:div [check-number-filter]] ] diff --git a/src/cljs/auto_ap/views/pages/transactions/table.cljs b/src/cljs/auto_ap/views/pages/transactions/table.cljs index e7c61bfa..5caa5efb 100644 --- a/src/cljs/auto_ap/views/pages/transactions/table.cljs +++ b/src/cljs/auto_ap/views/pages/transactions/table.cljs @@ -62,9 +62,6 @@ :asc asc} "Vendor"] - - - [sorted-column {:on-sort opc :style {:width "8em" :cursor "pointer"} :sort-key "date"