From abfcb370782b9cab71bec5f6b9e9d3e86c653386 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Tue, 1 Sep 2020 22:47:03 -0700 Subject: [PATCH] added default sorting back in. --- src/clj/auto_ap/datomic.clj | 4 +++- src/clj/auto_ap/datomic/checks.clj | 8 +++++--- src/clj/auto_ap/datomic/invoices.clj | 7 ++++--- src/clj/auto_ap/datomic/ledger.clj | 4 ++-- src/clj/auto_ap/datomic/sales_orders.clj | 4 ++-- src/clj/auto_ap/datomic/transactions.clj | 4 +++- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/clj/auto_ap/datomic.clj b/src/clj/auto_ap/datomic.clj index 5158a6be..fd2e1475 100644 --- a/src/clj/auto_ap/datomic.clj +++ b/src/clj/auto_ap/datomic.clj @@ -789,7 +789,8 @@ (:sort args))) (defn apply-sort-3 [args results] - (let [sort-bys (or (:sort args) []) + (let [sort-bys (conj (:sort args) + {:sort-key "default" :asc true}) length (count sort-bys) comparator (fn [xs ys] (reduce @@ -797,6 +798,7 @@ (let [comparison (if (:asc (sort-bys i)) (compare (nth xs i) (nth ys i)) (compare (nth ys i) (nth xs i)))] + (if (not= 0 comparison) (reduced comparison) 0))) diff --git a/src/clj/auto_ap/datomic/checks.clj b/src/clj/auto_ap/datomic/checks.clj index 21f6c781..8db16463 100644 --- a/src/clj/auto_ap/datomic/checks.clj +++ b/src/clj/auto_ap/datomic/checks.clj @@ -4,7 +4,8 @@ [auto-ap.graphql.utils :refer [limited-clients]] [auto-ap.utils :refer [dollars=]] [clojure.set :refer [rename-keys]] - [clj-time.coerce :as c])) + [clj-time.coerce :as c] + [clojure.tools.logging :as log])) (defn <-datomic [result] (-> result @@ -125,10 +126,11 @@ :args [check-number-like]}) true - (merge-query {:query {:find ['?base-date '?e] - :where ['[?e :payment/date ?base-date]]}}))] + (merge-query {:query {:find ['?sort-default '?e] + :where ['[?e :payment/date ?sort-default]]}}))] + (log/info "query" query) (cond->> query true (d/query) true (apply-sort-3 args) diff --git a/src/clj/auto_ap/datomic/invoices.clj b/src/clj/auto_ap/datomic/invoices.clj index 909116c7..17572702 100644 --- a/src/clj/auto_ap/datomic/invoices.clj +++ b/src/clj/auto_ap/datomic/invoices.clj @@ -27,7 +27,7 @@ (defn raw-graphql-ids [db args] (->> (doto (cond-> {:query {:find [] :in ['$] - :where ['[?e :invoice/invoice-number]]} + :where []} :args [(d/db (d/connect uri))]} (limited-clients (:id args)) @@ -118,8 +118,9 @@ "outstanding-balance" ['[?e :invoice/outstanding-balance ?sort-outstanding-balance]]} args) true - (merge-query {:query {:find ['?e] - :where ['[?e :invoice/client]]}}) ) + (merge-query {:query {:find ['?sort-default '?e ] + :where ['[?e :invoice/client] + '[?e :invoice/date ?sort-default]]}}) ) (#(log/info %))) diff --git a/src/clj/auto_ap/datomic/ledger.clj b/src/clj/auto_ap/datomic/ledger.clj index 34c8c491..6c07ef96 100644 --- a/src/clj/auto_ap/datomic/ledger.clj +++ b/src/clj/auto_ap/datomic/ledger.clj @@ -9,9 +9,9 @@ (defn raw-graphql-ids [db args] - (let [query (cond-> {:query {:find [] + (let [query (cond-> {:query {:find ['?sort-default] :in ['$ ] - :where []} + :where ['[?e :journal-entry/date ?sort-default]]} :args [db]} (:sort args) (add-sorter-fields {"client" ['[?e :journal-entry/client ?c] diff --git a/src/clj/auto_ap/datomic/sales_orders.clj b/src/clj/auto_ap/datomic/sales_orders.clj index 59123fc1..be008507 100644 --- a/src/clj/auto_ap/datomic/sales_orders.clj +++ b/src/clj/auto_ap/datomic/sales_orders.clj @@ -73,8 +73,8 @@ :args [(c/to-date (:end (:date-range args)))]}) true - (merge-query {:query {:find ['?base-date '?e] - :where ['[?e :sales-order/date ?base-date]]}}))] + (merge-query {:query {:find ['?sort-default '?e] + :where ['[?e :sales-order/date ?sort-default]]}}))] (cond->> query diff --git a/src/clj/auto_ap/datomic/transactions.clj b/src/clj/auto_ap/datomic/transactions.clj index 460b868b..23422fe9 100644 --- a/src/clj/auto_ap/datomic/transactions.clj +++ b/src/clj/auto_ap/datomic/transactions.clj @@ -115,7 +115,9 @@ "status" ['[?e :transaction/status ?sort-status]]} args) true - (merge-query {:query {:find ['?e] :where ['[?e :transaction/id]]}}))] + (merge-query {:query {:find ['?sort-default '?e] + :where ['[?e :transaction/id] + '[?e :transaction/date ?sort-default]]}}))] (cond->> query true (d/query) true (apply-sort-3 args)