added vendor filter payment

This commit is contained in:
Bryce Covert
2019-01-25 23:01:02 -08:00
parent 963fe4373b
commit 7aaf9bf035
3 changed files with 37 additions and 2 deletions

View File

@@ -38,6 +38,8 @@
(:client-id args) (add-arg '?client-id (:client-id args)
'[?e :payment/client ?client-id])
(:vendor-id args) (add-arg '?vendor-id (:vendor-id args)
'[?e :payment/vendor ?vendor-id])
(:original-id args) (add-arg '?original-id (cond-> (:original-id args) (string? (:original-id args)) Long/parseLong )
'[?e :payment/client ?c]
'[?c :client/original-id ?original-id])

View File

@@ -233,6 +233,7 @@
:payment_page {:type '(list :payment_page)
:args {:client_id {:type :id}
:vendor_id {:type :id}
:start {:type 'Int}
:sort_by {:type 'String}
:asc {:type 'Boolean}}

View File

@@ -2,13 +2,16 @@
(:require [re-frame.core :as re-frame]
[auto-ap.entities.clients :as client]
[auto-ap.entities.vendors :as vendor]
[auto-ap.entities.invoice :as invoice]
[reagent.core :as reagent]
[goog.string :as gstring]
[clojure.spec.alpha :as s]
[auto-ap.views.components.sorter :refer [sorted-column]]
[auto-ap.views.components.layouts :refer [side-bar-layout]]
[auto-ap.views.components.typeahead :refer [typeahead]]
[auto-ap.views.components.paginator :refer [paginator]]
[auto-ap.events :as events]
[auto-ap.views.utils :refer [dispatch-event date->str ]]
[auto-ap.views.utils :refer [dispatch-event date->str bind-field]]
[auto-ap.utils :refer [by]]
[auto-ap.views.pages.check :as check]
[auto-ap.views.components.invoice-table :refer [invoice-table] :as invoice-table]
@@ -79,6 +82,18 @@
(fn [cofx [_ params]]
{:dispatch [::params-change @(re-frame/subscribe [::params])]}))
(re-frame/reg-event-db
::change-selected-vendor
(fn [db [_ key value]]
(let [[key] key
updated (assoc-in db [::payment-page :vendor-filter key] value)]
(if (and (= key :vendor-id)
(not= value (get-in db [::params :vendor-id])))
(do
(re-frame/dispatch [::params-change (assoc (::params updated) :vendor-id value)])
(assoc-in updated [::params :vendor-id] value))
updated))))
(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])
@@ -188,6 +203,23 @@
(re-frame/dispatch [::params-change params]))}]]))
{:component-will-mount #(re-frame/dispatch-sync [::params-change {}]) }))
(defn vendor-filter []
(let [{:keys [vendor-filter]} @(re-frame/subscribe [::payment-page])]
[:div.field
[:div.control
[bind-field
[typeahead {:matches (map (fn [x] [(:id x) (:name x)]) @(re-frame/subscribe [::subs/vendors]))
:type "typeahead"
:auto-focus true
:field [:vendor-id]
:text-field [:vendor-name]
:event [::change-selected-vendor]
:spec (s/nilable ::invoice/vendor-id)
:subscription vendor-filter}]]]]))
(defn checks-page []
[side-bar-layout {:side-bar [:div]
[side-bar-layout {:side-bar
[:div
[:p.menu-label "Vendor"]
[:div [vendor-filter]]]
:main [checks-content]}])