added apply all rule.

This commit is contained in:
Bryce Covert
2020-01-24 19:28:52 -08:00
parent bb40bff203
commit 54fc606cf0
8 changed files with 85 additions and 19 deletions

View File

@@ -3,6 +3,7 @@
[auto-ap.datomic.transactions :as d-transactions]
[auto-ap.datomic.vendors :as d-vendors]
[auto-ap.datomic.checks :as d-checks]
[auto-ap.graphql.transaction-rules :as g-tr]
[datomic.api :as d]
[auto-ap.datomic :refer [uri remove-nils]]
[com.walmartlabs.lacinia :refer [execute]]
@@ -122,8 +123,17 @@
approval-status->graphql
->graphql))
(defn match-transaction-rules [context {:keys [transaction_ids transaction_rule_id]} value]
(defn match-transaction-rules [context {:keys [transaction_ids transaction_rule_id all]} value]
(let [_ (assert-admin (:id context))
transaction_ids (if all
(->> (g-tr/run-transaction-rule context {:transaction_rule_id transaction_rule_id
:count Integer/MAX_VALUE} nil)
(filter #(not (:transaction/payment %)))
(map :id ))
transaction_ids)
transactions (transduce
(comp
(map d-transactions/get-by-id)
@@ -134,7 +144,9 @@
transaction-rule (update (tr/get-by-id transaction_rule_id) :transaction-rule/description #(some-> % re-pattern))]
(doseq [transaction transactions]
(when (not (rm/rule-applies? transaction transaction-rule))
(throw (ex-info "Transaction rule does not apply" {:validation-error "Transaction rule does not apply"})))
(throw (ex-info "Transaction rule does not apply" {:validation-error "Transaction rule does not apply"
:transaction-rule transaction-rule
:transaction transaction})))
(when (:transaction/payment transaction)