checks have date ranges.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
(ns auto-ap.datomic.checks
|
(ns auto-ap.datomic.checks
|
||||||
(:require [datomic.api :as d]
|
(:require [datomic.api :as d]
|
||||||
[auto-ap.datomic :refer [uri]]
|
[auto-ap.datomic :refer [uri merge-query]]
|
||||||
[auto-ap.graphql.utils :refer [limited-clients]]
|
[auto-ap.graphql.utils :refer [limited-clients]]
|
||||||
[clojure.set :refer [rename-keys]]
|
[clojure.set :refer [rename-keys]]
|
||||||
[clj-time.coerce :as c]))
|
[clj-time.coerce :as c]))
|
||||||
@@ -57,6 +57,15 @@
|
|||||||
'[?e :payment/amount ?amount])
|
'[?e :payment/amount ?amount])
|
||||||
(:status args) (add-arg '?status (:status args)
|
(:status args) (add-arg '?status (:status args)
|
||||||
'[?e :payment/status ?status])
|
'[?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
|
check-number-like (add-arg '?check-number-like check-number-like
|
||||||
'[?e :payment/check-number ?check-number-like]
|
'[?e :payment/check-number ?check-number-like]
|
||||||
#_'[(.contains ^String ?check-number ?check-number-like)]))]
|
#_'[(.contains ^String ?check-number ?check-number-like)]))]
|
||||||
|
|||||||
@@ -349,6 +349,7 @@
|
|||||||
:payment_page {:type '(list :payment_page)
|
:payment_page {:type '(list :payment_page)
|
||||||
:args {:client_id {:type :id}
|
:args {:client_id {:type :id}
|
||||||
:vendor_id {:type :id}
|
:vendor_id {:type :id}
|
||||||
|
:date_range {:type :date_range}
|
||||||
:check_number_like {:type 'String}
|
:check_number_like {:type 'String}
|
||||||
:start {:type 'Int}
|
:start {:type 'Int}
|
||||||
:sort_by {:type 'String}
|
:sort_by {:type 'String}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
[clojure.spec.alpha :as s]
|
[clojure.spec.alpha :as s]
|
||||||
[auto-ap.views.components.sorter :refer [sorted-column]]
|
[auto-ap.views.components.sorter :refer [sorted-column]]
|
||||||
[auto-ap.views.components.vendor-filter :refer [vendor-filter]]
|
[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.layouts :refer [side-bar-layout]]
|
||||||
[auto-ap.views.components.typeahead :refer [typeahead]]
|
[auto-ap.views.components.typeahead :refer [typeahead]]
|
||||||
[auto-ap.views.components.paginator :refer [paginator]]
|
[auto-ap.views.components.paginator :refer [paginator]]
|
||||||
@@ -80,7 +81,7 @@
|
|||||||
::received
|
::received
|
||||||
(fn [db [_ data]]
|
(fn [db [_ data]]
|
||||||
(-> db
|
(-> db
|
||||||
(assoc ::payment-page (first (:payment-page data)))
|
(update ::payment-page merge (first (:payment-page data)))
|
||||||
(assoc-in [:status :loading] false))))
|
(assoc-in [:status :loading] false))))
|
||||||
|
|
||||||
(re-frame/reg-event-fx
|
(re-frame/reg-event-fx
|
||||||
@@ -100,6 +101,16 @@
|
|||||||
(assoc-in updated [::params :vendor-id] value))
|
(assoc-in updated [::params :vendor-id] value))
|
||||||
updated))))
|
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
|
(re-frame/reg-event-fx
|
||||||
::check-number-like-current-changed
|
::check-number-like-current-changed
|
||||||
(fn [{:keys [db]} [_ params check-like]]
|
(fn [{:keys [db]} [_ params check-like]]
|
||||||
@@ -246,6 +257,12 @@
|
|||||||
:value (:vendor-filter @(re-frame/subscribe [::payment-page]))
|
:value (:vendor-filter @(re-frame/subscribe [::payment-page]))
|
||||||
:vendors @(re-frame/subscribe [::subs/vendors])}]]
|
: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 #"]
|
[:p.menu-label "Check #"]
|
||||||
[:div [check-number-filter]]
|
[:div [check-number-filter]]
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -62,9 +62,6 @@
|
|||||||
:asc asc}
|
:asc asc}
|
||||||
"Vendor"]
|
"Vendor"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[sorted-column {:on-sort opc
|
[sorted-column {:on-sort opc
|
||||||
:style {:width "8em" :cursor "pointer"}
|
:style {:width "8em" :cursor "pointer"}
|
||||||
:sort-key "date"
|
:sort-key "date"
|
||||||
|
|||||||
Reference in New Issue
Block a user