Adds the ability to suppress transactions

This commit is contained in:
2021-12-16 07:26:02 -08:00
parent a76b84fd8d
commit 1d312dd55d
7 changed files with 27 additions and 13 deletions

View File

@@ -422,7 +422,11 @@
:db/doc "Who triggred this import" :db/doc "Who triggred this import"
:db/valueType :db.type/string :db/valueType :db.type/string
:db/cardinality :db.cardinality/one}]] :db/cardinality :db.cardinality/one}]]
:depends-on [:auto-ap/base-schema]}} :depends-on [:auto-ap/base-schema]}
:auto-ap/add-suppression {:txes [[{:db/ident :transaction-approval-status/suppressed}
{:db/ident :transaction/approval-status
:db/index true}]]
:depends-on [:auto-ap/base-schema]}}

View File

@@ -148,7 +148,8 @@
true true
(merge-query {:query {:find ['?sort-default '?e] (merge-query {:query {:find ['?sort-default '?e]
:where ['[?e :transaction/id] :where ['[?e :transaction/id]
'[?e :transaction/date ?sort-default]]}}))] '[?e :transaction/date ?sort-default]
'(not [?e :transaction/approval-status :transaction-approval-status/suppressed])]}}))]
(log/info "query is" query) (log/info "query is" query)
(cond->> query (cond->> query
true (d/query) true (d/query)

View File

@@ -995,6 +995,7 @@
{:enum-value :revenue}]} {:enum-value :revenue}]}
:transaction_approval_status {:values [{:enum-value :approved} :transaction_approval_status {:values [{:enum-value :approved}
{:enum-value :unapproved} {:enum-value :unapproved}
{:enum-value :suppressed}
{:enum-value :requires_feedback} {:enum-value :requires_feedback}
{:enum-value :excluded}]}} {:enum-value :excluded}]}}
:mutations :mutations

View File

@@ -78,7 +78,8 @@
(log/info "Deleting " (count all-ids) args) (log/info "Deleting " (count all-ids) args)
(audit-transact-batch (audit-transact-batch
(mapcat (fn [i] (mapcat (fn [i]
[[:db/retractEntity i] [{:db/id i
:transaction/approval-status :transaction-approval-status/suppressed}
[:db/retractEntity [:journal-entry/original-entity i]]]) [:db/retractEntity [:journal-entry/original-entity i]]])
all-ids) all-ids)
(:id context)) (:id context))

View File

@@ -87,6 +87,7 @@
credit-from-bank? decreasing? credit-from-bank? decreasing?
debit-from-bank? (not decreasing?)] debit-from-bank? (not decreasing?)]
(when-not (or (= :transaction-approval-status/excluded (:db/ident (:transaction/approval-status entity))) (when-not (or (= :transaction-approval-status/excluded (:db/ident (:transaction/approval-status entity)))
(= :transaction-approval-status/suppressed (:db/ident (:transaction/approval-status entity)))
(dollars-0? (:transaction/amount entity))) (dollars-0? (:transaction/amount entity)))
(remove-nils (remove-nils
{:journal-entry/source "transaction" {:journal-entry/source "transaction"

View File

@@ -185,9 +185,13 @@
client-id (:db/id client) client-id (:db/id client)
valid-locations (or (:bank-account/locations bank-account) (:client/locations client)) valid-locations (or (:bank-account/locations bank-account) (:client/locations client))
date (time/parse date "YYYY-MM-dd")] date (time/parse date "YYYY-MM-dd")
id (sha-256 (str id))]
(cond (existing (sha-256 (str id))) (cond (= :transaction-approval-status/suppressed (existing id))
:suppressed
(existing id)
:extant :extant
(not client-id) (not client-id)
@@ -293,11 +297,13 @@
(defn get-existing [] (defn get-existing []
(transduce (map first) conj #{} (into {}
(d/query {:query {:find ['?tid] (d/query {:query {:find ['?tid '?as2]
:in ['$] :in ['$]
:where ['[_ :transaction/id ?tid]]} :where ['[?e :transaction/id ?tid]
:args [(d/db (d/connect uri))]}))) '[?e :transaction/approval-status ?as]
'[?as :db/ident ?as2]]}
:args [(d/db (d/connect uri))]})))
(defn get-all-bank-accounts [] (defn get-all-bank-accounts []
(->> (d-clients/get-all) (->> (d-clients/get-all)

View File

@@ -95,7 +95,6 @@
(let [checked @(re-frame/subscribe [::data-page/checked ::page]) (let [checked @(re-frame/subscribe [::data-page/checked ::page])
checked-params (get checked "header") checked-params (get checked "header")
specific-transactions (map :id (vals (dissoc checked "header")))] specific-transactions (map :id (vals (dissoc checked "header")))]
(println checked-params)
{:db (-> (:db cofx) {:db (-> (:db cofx)
(assoc-in [:status :loading] true)) (assoc-in [:status :loading] true))
:graphql {:token (-> cofx :db :user) :graphql {:token (-> cofx :db :user)
@@ -109,7 +108,8 @@
:ids specific-transactions} :ids specific-transactions}
[:message]]}]} [:message]]}]}
:on-success (fn [result] :on-success (fn [result]
[::params-change params])}}))) [::params-change params])}
:dispatch [::data-page/reset-checked ::page]})))
(re-frame/reg-event-fx (re-frame/reg-event-fx
::unmounted ::unmounted
@@ -186,7 +186,7 @@
:class (status/class-for @(re-frame/subscribe [::status/single ::delete-selected])) :class (status/class-for @(re-frame/subscribe [::status/single ::delete-selected]))
:disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::delete-selected])) :disabled (or (status/disabled-for @(re-frame/subscribe [::status/single ::delete-selected]))
(not (seq checked)))} (not (seq checked)))}
"Delete selected"]]]) "Suppress selected"]]])
[table/table {:id :transactions [table/table {:id :transactions
:check-boxes? is-admin? :check-boxes? is-admin?
:data-page ::page}]])) :data-page ::page}]]))