Description filter

This commit is contained in:
Bryce Covert
2020-03-21 12:51:56 -07:00
parent c6d09a07e9
commit bb59be6aea
5 changed files with 142 additions and 2 deletions

View File

@@ -59,6 +59,8 @@
(merge-query {:query {:in ['?vendor-id]
:where ['[?e :transaction/vendor ?vendor-id]]}
:args [(:vendor-id args)]})
(:amount-gte args)
(merge-query {:query {:in ['?amount-gte]
:where ['[?e :transaction/amount ?a]
@@ -100,6 +102,12 @@
'[?c :client/original-id ?original-id]]}
:args [(:original-id args)]})
(:description args)
(merge-query {:query {:in ['?description]
:where ['[?e :transaction/description-original ?do]
'[(.contains ?do ?description)]]}
:args [(:description args)]})
true
(merge-query {:query {:find ['?base-date '?e] :where ['[?e :transaction/id]
'[?e :transaction/date ?base-date]]}}))]

View File

@@ -401,6 +401,7 @@
:date_range {:type :date_range}
:amount_lte {:type :money}
:amount_gte {:type :money}
:description {:type 'String}
:start {:type 'Int}
:sort_by {:type 'String}
:asc {:type 'Boolean}

View File

@@ -0,0 +1,43 @@
(ns auto-ap.views.components.number-filter
(:require
[clojure.spec.alpha :as s]
[auto-ap.entities.invoice :as invoice]
[auto-ap.views.components.typeahead :refer [typeahead]]
[auto-ap.views.utils :refer [bind-field date-picker date->str local-now standard]]
[cljs-time.core :as t]
[re-frame.core :as re-frame]))
(defn dispatch-change [on-change-event start end]
(fn [_]
(re-frame/dispatch (into on-change-event [[:start] start]) )
(re-frame/dispatch (into on-change-event [[:end] end]))))
(defn number-filter [{:keys [value on-change-event]}]
[:div
[:div.field.has-addons
[:div.control
[bind-field
[date-picker {:class-name "input is-fullwidth"
:class "input"
:format-week-number (fn [] "")
:previous-month-button-label ""
:placeholder-text "Start"
:next-month-button-label ""
:next-month-label ""
:event on-change-event
:type "date"
:field [:start]
:subscription value}]]]
[:div.control
[bind-field
[date-picker {:class-name "input is-fullwidth"
:class "input"
:format-week-number (fn [] "")
:previous-month-button-label ""
:placeholder-text "End"
:next-month-button-label ""
:event on-change-event
:next-month-label ""
:type "date"
:field [:end]
:subscription value}]]]]])

View File

@@ -0,0 +1,62 @@
(ns auto-ap.views.components.number-filter
(:require
[clojure.spec.alpha :as s]
[auto-ap.entities.invoice :as invoice]
[auto-ap.views.components.typeahead :refer [typeahead]]
[auto-ap.views.utils :refer [bind-field date-picker date->str local-now standard]]
[cljs-time.core :as t]
[re-frame.core :as re-frame]))
(defn dispatch-change [on-change-event start end]
(fn [_]
(re-frame/dispatch (into on-change-event [[:start] start]) )
(re-frame/dispatch (into on-change-event [[:end] end]))))
(defn number-filter [{:keys [value on-change-event]}]
[:div.field
[:div.control
[:div.columns
[:div.column
[bind-field
[:input.input {:type "number"
:placeholder ">="
:field [:amount-gte]
:step "0.01"
:event on-change-event
:subscription value}]]]
[:div.column
[bind-field
[:input.input {:type "number"
:placeholder "<="
:field [:amount-lte]
:event on-change-event
:step "0.01"
:subscription value}]]]]]]
#_[:div
[:div.field.has-addons
[:div.control
[bind-field
[date-picker {:class-name "input is-fullwidth"
:class "input"
:format-week-number (fn [] "")
:previous-month-button-label ""
:placeholder-text "Start"
:next-month-button-label ""
:next-month-label ""
:event on-change-event
:type "date"
:field [:start]
:subscription value}]]]
[:div.control
[bind-field
[date-picker {:class-name "input is-fullwidth"
:class "input"
:format-week-number (fn [] "")
:previous-month-button-label ""
:placeholder-text "End"
:next-month-button-label ""
:event on-change-event
:next-month-label ""
:type "date"
:field [:end]
:subscription value}]]]]])

View File

@@ -114,6 +114,24 @@
{:dispatch [::params-change (::params updated)]
:db updated})))
(re-frame/reg-event-fx
::description-settled
(fn [{:keys [db]} [_ description]]
(let [updated (-> db
(assoc-in [::params :description] description))]
{:dispatch [::params-change (::params updated)]
:db updated})))
(re-frame/reg-event-fx
::description-changed
(fn [{:keys [db]} [_ description]]
{:dispatch-debounce
{:event [::description-settled description]
:time 500
:key ::description}
:db (assoc-in db [::transaction-page :description] description)}))
(re-frame/reg-sub
::notification
(fn [db]
@@ -207,6 +225,7 @@
{:on-change-event [::change-selected-bank-account]
:value (:bank-acount-filter @(re-frame/subscribe [::transaction-page]))
:bank-accounts @(re-frame/subscribe [::subs/bank-accounts])}]]
[:p.menu-label "Date Range"]
[:div
[date-range-filter
@@ -225,8 +244,15 @@
:on-change #(re-frame/dispatch [::change-selected-vendor %])
:match->text :name
:type "typeahead-entity"
:value (:vendor-filter @(re-frame/subscribe [::transaction-page]))}]
] ]
:value (:vendor-filter @(re-frame/subscribe [::transaction-page]))}]]
[:p.menu-label "Description"]
[:div
[:div.field
[:div.control [:input.input {:placeholder "CHECK 123 ABC"
:value (:description @(re-frame/subscribe [::transaction-page]))
:on-change (fn [e]
(re-frame/dispatch [::description-changed (.. e -target -value) ]))} ]]]]]
:main [(get main-content approval-status)]
:bottom [:div