Simplified forms considerably

This commit is contained in:
2022-07-16 10:15:47 -07:00
parent d16b9c9a5e
commit 16a1d243e8
16 changed files with 519 additions and 592 deletions

View File

@@ -266,24 +266,30 @@
(throw (ex-info "Payment can't be undone because it isn't cleared." {:validation-error "Payment can't be undone because it isn't cleared."})))
(if is-autopay-payment?
(audit-transact
(->> [{:db/id (:db/id payment)
:payment/status :payment-status/pending}
{:db/id transaction-id
:transaction/approval-status :transaction-approval-status/unapproved}
(cond-> [{:db/id (:db/id payment)
:payment/status :payment-status/pending}
{:db/id transaction-id
:transaction/approval-status :transaction-approval-status/unapproved}
[:db/retractEntity (:db/id payment) ]
[:db/retract transaction-id :transaction/payment (:db/id payment)]
[:db/retract transaction-id :transaction/vendor (:db/id (:transaction/vendor transaction))]
[:db/retract transaction-id :transaction/location (:transaction/location transaction)]]
(into (map (fn [a]
[:db/retract transaction-id :transaction/accounts (:db/id a)])
(:transaction/accounts transaction)))
(into (map (fn [[invoice-payment]]
[:db/retractEntity invoice-payment])
(d/query {:query {:find ['?ip]
:in ['$ '?p]
:where ['[?ip :invoice-payment/payment ?p]]}
:args [(d/db conn) (:db/id payment)]} ))))
[:db/retractEntity (:db/id payment) ]
[:db/retract transaction-id :transaction/payment (:db/id payment)]
[:db/retract transaction-id :transaction/vendor (:db/id (:transaction/vendor transaction))]]
(:transaction/location transaction)
(conj [:db/retract transaction-id :transaction/location (:transaction/location transaction)])
(seq (:transaction/accounts transaction))
(into (map (fn [a]
[:db/retract transaction-id :transaction/accounts (:db/id a)])
(:transaction/accounts transaction)))
true
(into (map (fn [[invoice-payment]]
[:db/retractEntity invoice-payment])
(d/query {:query {:find ['?ip]
:in ['$ '?p]
:where ['[?ip :invoice-payment/payment ?p]]}
:args [(d/db conn) (:db/id payment)]} ))))
(:id context))
(audit-transact
(into (cond-> [{:db/id (:db/id payment)

View File

@@ -5,12 +5,13 @@
[auto-ap.graphql.utils
:refer [->graphql
<-graphql
cleanse-query
assert-admin
assert-failure
cleanse-query
enum->keyword
is-admin?
result->page]]
[auto-ap.utils :refer [by]]
[clojure.set :as set]
[clojure.string :as str]
[clojure.tools.logging :as log]
@@ -31,9 +32,30 @@
(set (map :db/id (:user/clients id)))))))
(defn upsert-vendor [context {{:keys [id name hidden terms code print_as primary_contact secondary_contact address default_account_id invoice_reminder_schedule schedule_payment_dom terms_overrides account_overrides] :as in} :vendor} value]
(when (and id (not (can-user-edit-vendor? id (:id context))))
(assert-failure "This vendor is managed by Integreat. Please reach out to ben@integreatconsult.com for your changes."))
(when (->> schedule_payment_dom
(group-by :client_id)
vals
(filter #(> (count %) 1))
seq)
(assert-failure "Only one schedule payment override allowed per client."))
(when (->> terms_overrides
(group-by :client_id)
vals
(filter #(> (count %) 1))
seq)
(assert-failure "Only one terms override allowed per client."))
(when (->> account_overrides
(group-by :client_id)
vals
(filter #(> (count %) 1))
seq)
(assert-failure "Only one account override allowed per client."))
(let [
hidden (if (is-admin? (:id context))
hidden