diff --git a/src/clj/auto_ap/ssr/transaction/common.clj b/src/clj/auto_ap/ssr/transaction/common.clj index 641d564f..34c4a9c9 100644 --- a/src/clj/auto_ap/ssr/transaction/common.clj +++ b/src/clj/auto_ap/ssr/transaction/common.clj @@ -1,8 +1,9 @@ (ns auto-ap.ssr.transaction.common (:require - [auto-ap.datomic :refer [add-sorter-fields apply-pagination apply-sort-4 - conn merge-query observable-query pull-many]] - [auto-ap.graphql.utils :refer [extract-client-ids is-admin?]] + [auto-ap.datomic :refer [add-sorter-fields apply-pagination apply-sort-4 + conn merge-query observable-query pull-many]] + [auto-ap.datomic.accounts :as d-accounts] + [auto-ap.graphql.utils :refer [extract-client-ids is-admin?]] [auto-ap.routes.invoice :as invoice-routes] [auto-ap.routes.ledger :as ledger-routes] [auto-ap.routes.payments :as payment-routes] @@ -39,8 +40,9 @@ :else (boolean %))}}]]] [:description {:optional true} [:maybe [:string {:decode/string strip}]]] - [:vendor {:optional true :default nil} [:maybe [:entity-map {:pull [:db/id :vendor/name]}]]] - [:bank-account {:optional true :default nil} [:maybe [:entity-map {:pull [:db/id :bank-account/numeric-code]}]]] + [:vendor {:optional true :default nil} [:maybe [:entity-map {:pull [:db/id :vendor/name]}]]] + [:bank-account {:optional true :default nil} [:maybe [:entity-map {:pull [:db/id :bank-account/numeric-code]}]]] + [:account {:optional true :default nil} [:maybe [:entity-map {:pull [:db/id :account/name]}]]] #_[:status {:optional true} [:maybe (ref->enum-schema "transaction-status")]] [:exact-match-id {:optional true} [:maybe entity-id]] [:all-selected {:optional true :default nil} [:maybe :boolean]] @@ -150,11 +152,17 @@ :where ['[?e :transaction/bank-account ?ba]]} :args [(:db/id (:bank-account args))]}) - (:vendor args) - (merge-query {:query {:in ['?vendor-id] - :where ['[?e :transaction/vendor ?vendor-id]]} - :args [(:db/id (:vendor args))]}) - (:import-batch-id args) + (:vendor args) + (merge-query {:query {:in ['?vendor-id] + :where ['[?e :transaction/vendor ?vendor-id]]} + :args [(:db/id (:vendor args))]}) + + (:db/id (:account args)) + (merge-query {:query {:in ['?account-id] + :where ['[?e :transaction/accounts ?tas] + '[?tas :transaction-account/account ?account-id]]} + :args [(:db/id (:account args))]}) + (:import-batch-id args) (merge-query {:query {:in ['?import-batch-id] :where ['[?import-batch-id :import-batch/entry ?e]]} :args [(:import-batch-id args)]}) @@ -249,14 +257,22 @@ (com/hidden {:name "status" :value (some-> (:status (:query-params request)) name)}) [:fieldset.space-y-6 - (com/field {:label "Vendor"} - (com/typeahead {:name "vendor" - :id "vendor" - :url (bidi/path-for ssr-routes/only-routes :vendor-search) - :value (:vendor (:query-params request)) - :value-fn :db/id - :content-fn :vendor/name})) - (bank-account-filter* request) + (com/field {:label "Vendor"} + (com/typeahead {:name "vendor" + :id "vendor" + :url (bidi/path-for ssr-routes/only-routes :vendor-search) + :value (:vendor (:query-params request)) + :value-fn :db/id + :content-fn :vendor/name})) + (com/field {:label "Financial Account"} + (com/typeahead {:name "account" + :id "account" + :url (bidi/path-for ssr-routes/only-routes :account-search) + :value (:account (:query-params request)) + :value-fn :db/id + :content-fn #(:account/name (d-accounts/clientize (dc/pull (dc/db conn) d-accounts/default-read (:db/id %)) + (:db/id (:client request))))})) + (bank-account-filter* request) (date-range-field* request) (com/field {:label "Description"}