Tons of small fixes

This commit is contained in:
Bryce Covert
2020-07-27 21:28:02 -07:00
parent 3737cfa628
commit fdc1d3e9e4
26 changed files with 428 additions and 178 deletions

View File

@@ -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]]]]))

View File

@@ -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