added payment status and made checks sort correctly.

This commit is contained in:
2022-02-11 08:34:18 -08:00
parent 5d0d7afd99
commit 286c300dd0
5 changed files with 63 additions and 19 deletions

View File

@@ -1,8 +1,7 @@
(ns auto-ap.datomic.checks
(:require [datomic.api :as d]
[auto-ap.datomic :refer [uri merge-query apply-sort-3 apply-pagination add-sorter-fields conn]]
[auto-ap.datomic :refer [merge-query apply-sort-3 apply-pagination add-sorter-fields conn]]
[auto-ap.graphql.utils :refer [limited-clients]]
[auto-ap.utils :refer [dollars=]]
[clojure.set :refer [rename-keys]]
[clj-time.coerce :as c]
[clojure.tools.logging :as log]))
@@ -29,22 +28,22 @@
{:transaction/_payment [:db/id :transaction/date]}])
(defn raw-graphql-ids [db args]
(let [check-number-like (try (Long/parseLong (:check-number-like args)) (catch Exception e nil))
(let [check-number-like (try (Long/parseLong (:check-number-like args)) (catch Exception _ nil))
query (cond-> {:query {:find []
:in ['$]
:where []}
:args [db]}
(:sort args) (add-sorter-fields {"client" ['[?e :payment/client ?c]
'[?c :client/name ?sort-client]]
"vendor" ['[?e :payment/vendor ?v]
'[?v :vendor/name ?sort-vendor]]
"bank-account" ['[?e :payment/bank-account ?ba]
'[?ba :bank-account/name ?sort-bank-account]]
"check-number" ['[?e :payment/check-number ?sort-check-number]]
"date" ['[?e :payment/date ?sort-date]]
"amount" ['[?e :payment/amount ?sort-amount]]
"status" ['[?e :payment/status ?sort-status]]}
args)
(:sort args) (add-sorter-fields {"client" ['[?e :payment/client ?c]
'[?c :client/name ?sort-client]]
"vendor" ['[?e :payment/vendor ?v]
'[?v :vendor/name ?sort-vendor]]
"bank-account" ['[?e :payment/bank-account ?ba]
'[?ba :bank-account/name ?sort-bank-account]]
"check-number" ['[(get-else $ ?e :payment/check-number 0) ?sort-check-number]]
"date" ['[?e :payment/date ?sort-date]]
"amount" ['[?e :payment/amount ?sort-amount]]
"status" ['[?e :payment/status ?sort-status]]}
args)
(:exact-match-id args)
(merge-query {:query {:in ['?e]
:where []}
@@ -151,7 +150,7 @@
true (apply-sort-3 args)
true (apply-pagination args))))
(defn graphql-results [ids db args]
(defn graphql-results [ids db _]
(let [results (->> (d/pull-many db default-read ids)
(group-by :db/id))
payments (->> ids
@@ -161,7 +160,7 @@
payments))
(defn get-graphql [args]
(let [db (d/db (d/connect uri))
(let [db (d/db conn)
{ids-to-retrieve :ids matching-count :count} (raw-graphql-ids db args)]
[(->> (graphql-results ids-to-retrieve db args))
@@ -169,5 +168,5 @@
(defn get-by-id [id]
(->>
(d/pull (d/db (d/connect uri)) default-read id)
(d/pull (d/db conn) default-read id)
(<-datomic)))

View File

@@ -375,7 +375,10 @@
(defn get-payment-page [context args value]
(let [args (assoc args :id (:id context))
[payments checks-count] (d-checks/get-graphql (update (<-graphql args) :payment-type enum->keyword "payment-type"))]
[payments checks-count] (d-checks/get-graphql (-> args
(<-graphql)
(update :payment-type enum->keyword "payment-type")
(update :status enum->keyword "payment-status")))]
[{:payments (->> payments
(map (fn [payment]
@@ -511,6 +514,7 @@
:args {:client_id {:type :id}
:vendor_id {:type :id}
:payment_type {:type :payment_type}
:status {:type :payment_status}
:exact_match_id {:type :id}
:date_range {:type :date_range}
:amount_lte {:type :money}
@@ -550,7 +554,11 @@
{:payment_type {:values [{:enum-value :check}
{:enum-value :cash}
{:enum-value :debit}
{:enum-value :credit}]}})
{:enum-value :credit}]}
:payment_status {:values [{:enum-value :voided}
{:enum-value :pending}
{:enum-value :cleared}]}})
(def resolvers
{:get-potential-payments get-potential-payments

View File

@@ -345,3 +345,18 @@
(range)
group)))))
(defn add-single-transaction [bank-account-code tx]
(let [bank-account (d/pull (d/db conn)
[:bank-account/code
:db/id
:bank-account/locations
:bank-account/start-date
{:client/_bank-accounts [:client/code :client/locations :db/id]} ]
[:bank-account/code bank-account-code])]
(transaction->txs (-> (merge {:transaction/amount 100.0 :transaction/description-original "boring" :transaction/approval-status :transaction-approval-status/approved :transaction/status "POSTED"}
tx)
(assoc :transaction/bank-account (:db/id bank-account)))
bank-account
(rm/rule-applying-fn (tr/get-all)))))

View File

@@ -38,6 +38,7 @@
:client-id (:id @(re-frame/subscribe [::subs/client]))
:vendor-id (:id (:vendor params))
:payment-type (:payment-type params)
:status (:status params)
:exact-match-id (some-> (:exact-match-id params) str)
:date-range (:date-range params)
:amount-gte (:amount-gte (:amount-range params))

View File

@@ -67,6 +67,27 @@
(dispatch-event [::data-page/filter-changed data-page :payment-type nil])}
"All"]]]
[:p.menu-label "Status"]
[:div.field.has-addons
[:p.control [:a.button.is-small {:on-click
(dispatch-event [::data-page/filter-changed data-page :status :voided])
:class (when (= :voided @(re-frame/subscribe [::data-page/filter data-page :status]))
["is-selected" "is-success"])}
"Voided" ]]
[:p.control [:a.button.is-small {:on-click
(dispatch-event [::data-page/filter-changed data-page :status :pending])
:class (when (= :pending @(re-frame/subscribe [::data-page/filter data-page :status]))
["is-selected" "is-success"])}
"Pending" ]]
[:p.control [:a.button.is-small {:on-click
(dispatch-event [::data-page/filter-changed data-page :status :cleared])
:class (when (= :cleared @(re-frame/subscribe [::data-page/filter data-page :status]))
["is-selected" "is-success"])}
"Cleared"]]
[:p.control [:a.button.is-small {:on-click
(dispatch-event [::data-page/filter-changed data-page :status nil])}
"All"]]]
(when-let [exact-match-id @(re-frame/subscribe [::data-page/filter data-page :exact-match-id])]
[:div
[:p.menu-label "Specific Payment"]