added payment status and made checks sort correctly.
This commit is contained in:
@@ -1,8 +1,7 @@
|
|||||||
(ns auto-ap.datomic.checks
|
(ns auto-ap.datomic.checks
|
||||||
(:require [datomic.api :as d]
|
(: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.graphql.utils :refer [limited-clients]]
|
||||||
[auto-ap.utils :refer [dollars=]]
|
|
||||||
[clojure.set :refer [rename-keys]]
|
[clojure.set :refer [rename-keys]]
|
||||||
[clj-time.coerce :as c]
|
[clj-time.coerce :as c]
|
||||||
[clojure.tools.logging :as log]))
|
[clojure.tools.logging :as log]))
|
||||||
@@ -29,22 +28,22 @@
|
|||||||
{:transaction/_payment [:db/id :transaction/date]}])
|
{:transaction/_payment [:db/id :transaction/date]}])
|
||||||
|
|
||||||
(defn raw-graphql-ids [db args]
|
(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 []
|
query (cond-> {:query {:find []
|
||||||
:in ['$]
|
:in ['$]
|
||||||
:where []}
|
:where []}
|
||||||
:args [db]}
|
:args [db]}
|
||||||
(:sort args) (add-sorter-fields {"client" ['[?e :payment/client ?c]
|
(:sort args) (add-sorter-fields {"client" ['[?e :payment/client ?c]
|
||||||
'[?c :client/name ?sort-client]]
|
'[?c :client/name ?sort-client]]
|
||||||
"vendor" ['[?e :payment/vendor ?v]
|
"vendor" ['[?e :payment/vendor ?v]
|
||||||
'[?v :vendor/name ?sort-vendor]]
|
'[?v :vendor/name ?sort-vendor]]
|
||||||
"bank-account" ['[?e :payment/bank-account ?ba]
|
"bank-account" ['[?e :payment/bank-account ?ba]
|
||||||
'[?ba :bank-account/name ?sort-bank-account]]
|
'[?ba :bank-account/name ?sort-bank-account]]
|
||||||
"check-number" ['[?e :payment/check-number ?sort-check-number]]
|
"check-number" ['[(get-else $ ?e :payment/check-number 0) ?sort-check-number]]
|
||||||
"date" ['[?e :payment/date ?sort-date]]
|
"date" ['[?e :payment/date ?sort-date]]
|
||||||
"amount" ['[?e :payment/amount ?sort-amount]]
|
"amount" ['[?e :payment/amount ?sort-amount]]
|
||||||
"status" ['[?e :payment/status ?sort-status]]}
|
"status" ['[?e :payment/status ?sort-status]]}
|
||||||
args)
|
args)
|
||||||
(:exact-match-id args)
|
(:exact-match-id args)
|
||||||
(merge-query {:query {:in ['?e]
|
(merge-query {:query {:in ['?e]
|
||||||
:where []}
|
:where []}
|
||||||
@@ -151,7 +150,7 @@
|
|||||||
true (apply-sort-3 args)
|
true (apply-sort-3 args)
|
||||||
true (apply-pagination 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)
|
(let [results (->> (d/pull-many db default-read ids)
|
||||||
(group-by :db/id))
|
(group-by :db/id))
|
||||||
payments (->> ids
|
payments (->> ids
|
||||||
@@ -161,7 +160,7 @@
|
|||||||
payments))
|
payments))
|
||||||
|
|
||||||
(defn get-graphql [args]
|
(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)]
|
{ids-to-retrieve :ids matching-count :count} (raw-graphql-ids db args)]
|
||||||
|
|
||||||
[(->> (graphql-results ids-to-retrieve db args))
|
[(->> (graphql-results ids-to-retrieve db args))
|
||||||
@@ -169,5 +168,5 @@
|
|||||||
|
|
||||||
(defn get-by-id [id]
|
(defn get-by-id [id]
|
||||||
(->>
|
(->>
|
||||||
(d/pull (d/db (d/connect uri)) default-read id)
|
(d/pull (d/db conn) default-read id)
|
||||||
(<-datomic)))
|
(<-datomic)))
|
||||||
|
|||||||
@@ -375,7 +375,10 @@
|
|||||||
|
|
||||||
(defn get-payment-page [context args value]
|
(defn get-payment-page [context args value]
|
||||||
(let [args (assoc args :id (:id context))
|
(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
|
[{:payments (->> payments
|
||||||
(map (fn [payment]
|
(map (fn [payment]
|
||||||
@@ -511,6 +514,7 @@
|
|||||||
:args {:client_id {:type :id}
|
:args {:client_id {:type :id}
|
||||||
:vendor_id {:type :id}
|
:vendor_id {:type :id}
|
||||||
:payment_type {:type :payment_type}
|
:payment_type {:type :payment_type}
|
||||||
|
:status {:type :payment_status}
|
||||||
:exact_match_id {:type :id}
|
:exact_match_id {:type :id}
|
||||||
:date_range {:type :date_range}
|
:date_range {:type :date_range}
|
||||||
:amount_lte {:type :money}
|
:amount_lte {:type :money}
|
||||||
@@ -550,7 +554,11 @@
|
|||||||
{:payment_type {:values [{:enum-value :check}
|
{:payment_type {:values [{:enum-value :check}
|
||||||
{:enum-value :cash}
|
{:enum-value :cash}
|
||||||
{:enum-value :debit}
|
{:enum-value :debit}
|
||||||
{:enum-value :credit}]}})
|
{:enum-value :credit}]}
|
||||||
|
:payment_status {:values [{:enum-value :voided}
|
||||||
|
{:enum-value :pending}
|
||||||
|
{:enum-value :cleared}]}})
|
||||||
|
|
||||||
|
|
||||||
(def resolvers
|
(def resolvers
|
||||||
{:get-potential-payments get-potential-payments
|
{:get-potential-payments get-potential-payments
|
||||||
|
|||||||
@@ -345,3 +345,18 @@
|
|||||||
(range)
|
(range)
|
||||||
group)))))
|
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)))))
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
:client-id (:id @(re-frame/subscribe [::subs/client]))
|
:client-id (:id @(re-frame/subscribe [::subs/client]))
|
||||||
:vendor-id (:id (:vendor params))
|
:vendor-id (:id (:vendor params))
|
||||||
:payment-type (:payment-type params)
|
:payment-type (:payment-type params)
|
||||||
|
:status (:status params)
|
||||||
:exact-match-id (some-> (:exact-match-id params) str)
|
:exact-match-id (some-> (:exact-match-id params) str)
|
||||||
:date-range (:date-range params)
|
:date-range (:date-range params)
|
||||||
:amount-gte (:amount-gte (:amount-range params))
|
:amount-gte (:amount-gte (:amount-range params))
|
||||||
|
|||||||
@@ -67,6 +67,27 @@
|
|||||||
(dispatch-event [::data-page/filter-changed data-page :payment-type nil])}
|
(dispatch-event [::data-page/filter-changed data-page :payment-type nil])}
|
||||||
"All"]]]
|
"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])]
|
(when-let [exact-match-id @(re-frame/subscribe [::data-page/filter data-page :exact-match-id])]
|
||||||
[:div
|
[:div
|
||||||
[:p.menu-label "Specific Payment"]
|
[:p.menu-label "Specific Payment"]
|
||||||
|
|||||||
Reference in New Issue
Block a user