From f0ac926700650b1353e3062b7b5cc80ac0c19e02 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Sat, 21 Mar 2020 12:21:22 -0700 Subject: [PATCH] filter transaction by vendor --- src/clj/auto_ap/datomic/transactions.clj | 5 +++++ src/clj/auto_ap/graphql.clj | 1 + src/clj/auto_ap/routes/invoices.clj | 10 --------- .../auto_ap/views/pages/transactions.cljs | 22 ++++++++++++++++++- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/clj/auto_ap/datomic/transactions.clj b/src/clj/auto_ap/datomic/transactions.clj index a6ef7b84..2d631b0f 100644 --- a/src/clj/auto_ap/datomic/transactions.clj +++ b/src/clj/auto_ap/datomic/transactions.clj @@ -54,6 +54,11 @@ (merge-query {:query {:in ['?client-id] :where ['[?e :transaction/client ?client-id]]} :args [(:client-id args)]}) + + (:vendor-id args) + (merge-query {:query {:in ['?vendor-id] + :where ['[?e :transaction/vendor ?vendor-id]]} + :args [(:vendor-id args)]}) (:start (:date-range args)) (merge-query {:query {:in ['?start-date] :where ['[?e :transaction/date ?date] diff --git a/src/clj/auto_ap/graphql.clj b/src/clj/auto_ap/graphql.clj index 06bd213d..04dc0f00 100644 --- a/src/clj/auto_ap/graphql.clj +++ b/src/clj/auto_ap/graphql.clj @@ -396,6 +396,7 @@ :transaction_page {:type '(list :transaction_page) :args {:client_id {:type :id} + :vendor_id {:type :id} :bank_account_id {:type :id} :date_range {:type :date_range} :start {:type 'Int} diff --git a/src/clj/auto_ap/routes/invoices.clj b/src/clj/auto_ap/routes/invoices.clj index 386570a8..0980562a 100644 --- a/src/clj/auto_ap/routes/invoices.clj +++ b/src/clj/auto_ap/routes/invoices.clj @@ -278,15 +278,6 @@ (context "/invoices" [] (POST "/upload" -<<<<<<< HEAD - {{ file :file } :params :as params} - #_(clojure.pprint/pprint params) - (let [{:keys [filename tempfile]} file] - (import-uploaded-invoice (parse/parse-file (.getPath tempfile) filename)) - {:status 200 - :body (pr-str {}) - :headers {"Content-Type" "application/edn"}})) -======= {{ files "file"} :params :as params} (let [{:keys [filename tempfile]} files] (try @@ -300,7 +291,6 @@ :data (ex-data e)}) :headers {"Content-Type" "application/edn"}})) )) ->>>>>>> master (POST "/upload-integreat" {{:keys [excel-rows]} :edn-params user :identity} (assert-admin user) diff --git a/src/cljs/auto_ap/views/pages/transactions.cljs b/src/cljs/auto_ap/views/pages/transactions.cljs index 295b9a52..50a682a2 100644 --- a/src/cljs/auto_ap/views/pages/transactions.cljs +++ b/src/cljs/auto_ap/views/pages/transactions.cljs @@ -6,6 +6,8 @@ [auto-ap.routes :as routes] [auto-ap.views.components.bank-account-filter :refer [bank-account-filter]] [auto-ap.views.components.date-range-filter :refer [date-range-filter]] + [auto-ap.views.components.vendor-filter :refer [vendor-filter]] + [auto-ap.views.components.typeahead :refer [typeahead-entity]] [auto-ap.views.components.layouts :refer [appearing-side-bar side-bar-layout]] [auto-ap.views.components.modal :refer [action-modal]] [auto-ap.views.components.paginator :refer [paginator]] @@ -92,6 +94,15 @@ {:dispatch [::params-change (::params updated)] :db updated}))) +(re-frame/reg-event-fx + ::change-selected-vendor + (fn [{:keys [db]} [_ vendor]] + (let [updated (-> db + (assoc-in [::transaction-page :vendor-filter] vendor) + (assoc-in [::params :vendor-id] (:id vendor)))] + {:dispatch [::params-change (::params updated)] + :db updated}))) + (re-frame/reg-sub ::notification (fn [db] @@ -189,7 +200,16 @@ [:div [date-range-filter {:on-change-event [::change-selected-date-range] - :value (:date-range-filter @(re-frame/subscribe [::transaction-page]))}]]] + :value (:date-range-filter @(re-frame/subscribe [::transaction-page]))}]] + + [:p.menu-label "Vendor"] + [:div + [typeahead-entity {:matches @(re-frame/subscribe [::subs/vendors]) + :on-change #(re-frame/dispatch [::change-selected-vendor %]) + :match->text :name + :type "typeahead-entity" + :value (:vendor-filter @(re-frame/subscribe [::transaction-page]))}] + ] ] :main [(get main-content approval-status)] :bottom [:div