Tons of small fixes
This commit is contained in:
@@ -26,7 +26,8 @@
|
||||
:amount-gte
|
||||
:amount-lte
|
||||
:date-range
|
||||
:check-number-like}))
|
||||
:check-number-like
|
||||
:invoice-number}))
|
||||
url-filters {:vendor (when-let [vendor-id (:vendor-id url-filters)]
|
||||
{:id (str vendor-id)
|
||||
:name (get-in vendors-by-id [(str vendor-id) :name] "Loading...")})
|
||||
@@ -36,7 +37,9 @@
|
||||
:settled {:amount-gte (:amount-gte url-filters)
|
||||
:amount-lte (:amount-lte url-filters)}}
|
||||
:check-number-like {:raw (:check-number-like url-filters)
|
||||
:settled (:check-number-like url-filters)}}]
|
||||
:settled (:check-number-like url-filters)}
|
||||
:invoice-number {:raw (:invoice-number url-filters)
|
||||
:settled (:invoice-number url-filters)}}]
|
||||
(println "URL filters" url-filters)
|
||||
(merge url-filters specific-filters ))))
|
||||
|
||||
@@ -54,7 +57,8 @@
|
||||
:date-range (:date-range filters)
|
||||
:amount-gte (:amount-gte (:settled (:amount-range filters)))
|
||||
:amount-lte (:amount-lte (:settled (:amount-range filters)))
|
||||
:check-number-like (:settled (:check-number-like filters))}))
|
||||
:check-number-like (:settled (:check-number-like filters))
|
||||
:invoice-number (:settled (:invoice-number filters))}))
|
||||
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
@@ -73,6 +77,13 @@
|
||||
{:db (assoc db :settled description)
|
||||
:dispatch [::filter-changed :check-number-like [:settled] description]}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::invoice-number-settled
|
||||
[(re-frame/path [::filters :invoice-number])]
|
||||
(fn [{:keys [db]} [_ description]]
|
||||
{:db (assoc db :settled description)
|
||||
:dispatch [::filter-changed :invoice-number [:settled] description]}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::amount-range-settled
|
||||
[(re-frame/path [::filters :amount-range])]
|
||||
@@ -90,6 +101,16 @@
|
||||
:key ::check-number-like}
|
||||
:db (assoc db :raw description)}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::invoice-number-changed
|
||||
[(re-frame/path [::filters :invoice-number])]
|
||||
(fn [{:keys [db]} [_ description]]
|
||||
{:dispatch-debounce
|
||||
{:event [::invoice-number-settled description]
|
||||
:time 500
|
||||
:key ::invoice-number}
|
||||
:db (assoc db :raw description)}))
|
||||
|
||||
(re-frame/reg-event-fx
|
||||
::amount-range-changed
|
||||
[(re-frame/path [::filters :amount-range])]
|
||||
@@ -107,6 +128,13 @@
|
||||
:on-change (fn [x]
|
||||
(re-frame/dispatch [::check-number-like-changed (.. x -target -value) ]))} ]]])
|
||||
|
||||
(defn invoice-number-filter []
|
||||
[:div.field
|
||||
[:div.control [:input.input {:placeholder "SJ-12345"
|
||||
:value (:raw @(re-frame/subscribe [::filter :invoice-number]))
|
||||
:on-change (fn [x]
|
||||
(re-frame/dispatch [::invoice-number-changed (.. x -target -value) ]))} ]]])
|
||||
|
||||
(defn side-bar []
|
||||
(let [ap @(re-frame/subscribe [::subs/active-page])
|
||||
user @(re-frame/subscribe [::subs/user])]
|
||||
@@ -134,4 +162,7 @@
|
||||
:value (:raw @(re-frame/subscribe [::filter :amount-range]))}]]
|
||||
|
||||
[:p.menu-label "Check #"]
|
||||
[:div [check-number-filter]]]]))
|
||||
[:div [check-number-filter]]
|
||||
|
||||
[:p.menu-label "Invoice #"]
|
||||
[:div [invoice-number-filter]]]]))
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
(ns auto-ap.views.pages.payments.table
|
||||
(:require [auto-ap.subs :as subs]
|
||||
[auto-ap.routes :as routes]
|
||||
[cemerick.url :as url]
|
||||
[bidi.bidi :as bidi]
|
||||
[auto-ap.views.components.paginator :refer [paginator]]
|
||||
[auto-ap.views.components.sorter :refer [sorted-column]]
|
||||
[auto-ap.views.components.sort-by-list :refer [sort-by-list]]
|
||||
[auto-ap.views.utils :refer [date->str dispatch-event nf]]
|
||||
|
||||
[auto-ap.views.components.dropdown :refer [drop-down drop-down-contents]]
|
||||
[auto-ap.events :as events]
|
||||
[goog.string :as gstring]
|
||||
[re-frame.core :as re-frame]))
|
||||
|
||||
@@ -29,7 +35,7 @@
|
||||
selected-client :selected-client
|
||||
void-event :void-event
|
||||
}]
|
||||
(let [{:keys [client s3-url bank-account payments type check-number date amount id vendor status] :as check} check]
|
||||
(let [{:keys [client s3-url bank-account payments type check-number date amount id vendor status invoices] :as check} check]
|
||||
[:tr {:class (:class check)}
|
||||
(when-not selected-client
|
||||
[:td (:name client)])
|
||||
@@ -45,11 +51,31 @@
|
||||
[:td (date->str date) ]
|
||||
[:td.has-text-right (nf amount )]
|
||||
[:td status]
|
||||
[:td
|
||||
(when (or (= :pending status)
|
||||
(and (#{":cash" :cash ":debit" :debit} type)
|
||||
(not= :voided status)))
|
||||
[:button.button.is-warning.is-outlined {:on-click (dispatch-event (conj void-event check))} [:span [:span.icon [:i.fa.fa-minus-circle]]]])]]))
|
||||
[:td.expandable
|
||||
[:div.buttons
|
||||
(when (seq invoices)
|
||||
[drop-down {:id [::invoices id]
|
||||
:header [:button.button.badge {:data-badge (str (clojure.core/count invoices))
|
||||
:aria-haspopup true
|
||||
:tab-index "0"
|
||||
:on-click (dispatch-event [::events/toggle-menu [::invoices id]])
|
||||
} "Invoices"]}
|
||||
[:div {:style {:max-width "250px"
|
||||
:text-overflow "ellipsis"
|
||||
:white-space "nowrap"
|
||||
:overflow "hidden"}}
|
||||
(for [invoice invoices]
|
||||
^{:key (:invoice-number (:invoice invoice))}
|
||||
[:a.dropdown-item {:href (str (bidi/path-for routes/routes :invoices )
|
||||
"?"
|
||||
(url/map->query {:invoice-number-like (:invoice-number (:invoice invoice))}))
|
||||
:target "_new"} (str " " (:invoice-number (:invoice invoice)))])]])
|
||||
[:span {:style {:margin-left "1em"}}]
|
||||
|
||||
(when (or (= :pending status)
|
||||
(and (#{":cash" :cash ":debit" :debit} type)
|
||||
(not= :voided status)))
|
||||
[:button.button.is-warning.is-outlined {:on-click (dispatch-event (conj void-event check))} [:span [:span.icon [:i.fa.fa-minus-circle]]]])]]]))
|
||||
|
||||
(defn table [{:keys [id payment-page status void-event]}]
|
||||
(let [{:keys [sort]} @(re-frame/subscribe [::table-params])
|
||||
@@ -117,7 +143,7 @@
|
||||
:sort-name "Status"
|
||||
:sort sort}
|
||||
"Status"]
|
||||
[:th {:style {:width "8em"}} "" ]]]
|
||||
[:th {:style {:width "15em"}} "" ]]]
|
||||
[:tbody
|
||||
(if (:loading @status)
|
||||
[:tr
|
||||
|
||||
Reference in New Issue
Block a user