diff --git a/src/clj/auto_ap/datomic/checks.clj b/src/clj/auto_ap/datomic/checks.clj index 393c80eb..ba32b9bc 100644 --- a/src/clj/auto_ap/datomic/checks.clj +++ b/src/clj/auto_ap/datomic/checks.clj @@ -29,7 +29,8 @@ {:payment/type [:db/ident]}])) (defn raw-graphql [args] - (let [query (cond-> {:query {:find [default-read] + (let [check-number-like (try (Long/parseLong (:check-number-like args)) (catch Exception e nil)) + query (cond-> {:query {:find [default-read] :in ['$] :where ['[?e :payment/client]]} :args [(d/db (d/connect uri))]} @@ -54,7 +55,10 @@ (:amount args) (add-arg '?amount (:amount args) '[?e :payment/amount ?amount]) (:status args) (add-arg '?status (:status args) - '[?e :payment/status ?status]))] + '[?e :payment/status ?status]) + 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)]))] (->> (d/query query) diff --git a/src/clj/auto_ap/graphql.clj b/src/clj/auto_ap/graphql.clj index 53f4b013..87b49db3 100644 --- a/src/clj/auto_ap/graphql.clj +++ b/src/clj/auto_ap/graphql.clj @@ -266,6 +266,7 @@ :payment_page {:type '(list :payment_page) :args {:client_id {:type :id} :vendor_id {:type :id} + :check_number_like {:type 'String} :start {:type 'Int} :sort_by {:type 'String} :asc {:type 'Boolean}} diff --git a/src/cljs/auto_ap/views/pages/checks.cljs b/src/cljs/auto_ap/views/pages/checks.cljs index 9bd8f794..cad7dac5 100644 --- a/src/cljs/auto_ap/views/pages/checks.cljs +++ b/src/cljs/auto_ap/views/pages/checks.cljs @@ -40,7 +40,9 @@ (assoc-in [::params] params)) :graphql {:token (-> cofx :db :user) :query-obj {:venia/queries [[:payment_page - (assoc params :client-id (:id @(re-frame/subscribe [::subs/client]))) + (-> params + (assoc :client-id (:id @(re-frame/subscribe [::subs/client]))) + (dissoc :check-number-like-current)) [[:payments [:id :status :amount :type :check_number :s3_url :date [:vendor [:name :id]] [:client [:name :id]]]] :total :start @@ -96,6 +98,27 @@ (assoc-in updated [::params :vendor-id] value)) updated)))) +(re-frame/reg-event-fx + ::check-number-like-current-changed + (fn [{:keys [db]} [_ params check-like]] + {:db (assoc-in db [::params :check-number-like-current] check-like ) + :dispatch-debounce {:event [::check-number-like-settled check-like] + :time 500 + :key ::check-number-like}})) + +(re-frame/reg-event-fx + ::check-number-like-settled + (fn [{:keys [db]} [_ check-like]] + {:dispatch [::params-change (assoc (::params db) :check-number-like check-like :start 0) ]})) + +(defn check-number-filter [] + (let [{:keys [check-number-like-current] :as params} @(re-frame/subscribe [::params])] + [:div.field + [:div.control [:input.input {:placeholder "10001" + :value check-number-like-current + :on-change (fn [x] + (re-frame/dispatch [::check-number-like-current-changed params (.. x -target -value) ]))} ]]])) + (defn check-table [{:keys [id payment-page status on-params-change vendors params check-boxes checked on-check-changed expense-event]}] (let [#_#_state (reagent/atom (or @params {})) selected-client @(re-frame/subscribe [::subs/client]) @@ -211,8 +234,12 @@ (defn checks-page [] [side-bar-layout {:side-bar [:div - [:p.menu-label "Vendor"] + [:p.menu-label "Vendor"] [:div [vendor-filter {:on-change-event [::change-selected-vendor] :value (:vendor-filter @(re-frame/subscribe [::payment-page])) - :vendors @(re-frame/subscribe [::subs/vendors])}]]] + :vendors @(re-frame/subscribe [::subs/vendors])}]] + + [:p.menu-label "Check #"] + [:div [check-number-filter]] + ] :main [checks-content]}]) diff --git a/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs b/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs index 311f2d2b..fa21b2e8 100644 --- a/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs +++ b/src/cljs/auto_ap/views/pages/unpaid_invoices.cljs @@ -847,7 +847,7 @@ {:db (assoc-in db [::params :invoice-number-like-current] invoice-like ) :dispatch-debounce {:event [::invoice-number-like-settled invoice-like] :time 500 - :key ::invoice-nuber-like}})) + :key ::invoice-number-like}})) (re-frame/reg-event-fx ::invoice-number-like-settled