From babb0302d2781d0ed31d12b1d1b1089eb3848746 Mon Sep 17 00:00:00 2001 From: Bryce Date: Fri, 30 Aug 2024 14:04:08 -0700 Subject: [PATCH] allows filtering to code. --- src/clj/auto_ap/ssr/ledger.clj | 42 ++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/src/clj/auto_ap/ssr/ledger.clj b/src/clj/auto_ap/ssr/ledger.clj index dfb17531..97b8c755 100644 --- a/src/clj/auto_ap/ssr/ledger.clj +++ b/src/clj/auto_ap/ssr/ledger.clj @@ -117,9 +117,9 @@ :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 "Invoice #"} (com/text-input {:name "invoice-number" @@ -128,7 +128,26 @@ :value (:invoice-number (:query-params request)) :placeholder "e.g., ABC-456" :size :small})) - + +(com/field {:label "Account Code"} + [:div.flex.space-x-4.items-baseline + (com/int-input {:name "numeric-code-gte" + :id "numeric-code-gte" + :hx-preserve "true" + :class "hot-filter w-20" + :value (:numeric-code-gte (:query-params request)) + :placeholder "40000" + :size :small}) + [:div.align-baseline + "to"] + (com/int-input {:name "numeric-code-lte" + :hx-preserve "true" + :id "numeric-code-lte" + :class "hot-filter w-20" + :value (:numeric-code-lte (:query-params request)) + :placeholder "50000" + :size :small})]) + (com/field {:label "Amount"} [:div.flex.space-x-4.items-baseline (com/money-input {:name "amount-gte" @@ -186,7 +205,7 @@ :where ['[?e :journal-entry/source ?source]]} :args [(:source args)]}) (:external? route-params) -(merge-query {:query { :where ['[?e :journal-entry/external-id]]} }) + (merge-query {:query { :where ['[?e :journal-entry/external-id]]} }) (:vendor args) (merge-query {:query {:in ['?vendor-id] @@ -194,27 +213,28 @@ :args [(:db/id (:vendor args))]}) (:invoice-number args) -(merge-query {:query {:in ['?invoice-number] + (merge-query {:query {:in ['?invoice-number] :where ['[?e :journal-entry/original-entity ?oe] '[?oe :invoice/invoice-number ?invoice-number]]} :args [(:invoice-number args)]}) - (or (seq (:numeric-code args)) + (or (:numeric-code-lte args) + (:numeric-code-gte args) (:account args) (:db/id (:bank-account args)) (not-empty (:location args))) (merge-query {:query {:where ['[?e :journal-entry/line-items ?li]]}}) - (seq (:numeric-code args)) - (merge-query {:query {:in ['[[?from-numeric-code ?to-numeric-code]]] + (or (:numeric-code-gte args) + (:numeric-code-lte args)) + (merge-query {:query {:in '[?from-numeric-code ?to-numeric-code] :where ['[?li :journal-entry-line/account ?a] '(or-join [?a ?c] [?a :account/numeric-code ?c] [?a :bank-account/numeric-code ?c]) '[(>= ?c ?from-numeric-code)] '[(<= ?c ?to-numeric-code)]]} - :args [(vec (for [{:keys [from to]} (:numeric-code args)] - [(or from 0) (or to 99999)]))]}) + :args [(or (:numeric-code-gte args) 0) (or (:numeric-code-lte args) 99999)]}) (seq (:account args)) (merge-query {:query {:in ['?a3] @@ -347,6 +367,8 @@ [:start {:optional true :default 0} [:maybe :int]] [:amount-gte {:optional true} [:maybe :double]] [:amount-lte {:optional true} [:maybe :double]] + [:numeric-code-gte {:optional true} [:maybe nat-int?]] + [:numeric-code-lte {:optional true} [:maybe nat-int?]] [: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/name]}]]] [:account {:optional true :default nil} [:maybe [:entity-map {:pull [:db/id :account/name]}]]]