From a1cec5959e4423f388f084defc6669ee831af9a4 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Fri, 13 Jan 2023 10:13:25 -0800 Subject: [PATCH] added arity for being able to load specific settlement ranges. --- src/clj/auto_ap/square/core3.clj | 56 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/clj/auto_ap/square/core3.clj b/src/clj/auto_ap/square/core3.clj index fefcf21c..ada1d9d7 100644 --- a/src/clj/auto_ap/square/core3.clj +++ b/src/clj/auto_ap/square/core3.clj @@ -441,29 +441,31 @@ (defn daily-settlements ([client location] - (de/chain (settlements client location) + (daily-settlements client location (settlements client location))) + ([client location settlements] + (de/chain settlements (fn [settlements] (log/info ::transforming-settlements) (try (->> (for [settlement settlements :let [best-sales-date (->> (d/q '[:find ?s4 (count ?s) - :in $ ?settlement-id - :where - [?settlement :expected-deposit/external-id ?settlement-id] - [?settlement :expected-deposit/charges ?c] - [?s :sales-order/charges ?c] - [?s :sales-order/date ?sales-date] - [(clj-time.coerce/to-date-time ?sales-date) ?s2] - [(auto-ap.time/localize ?s2) ?s3] - [(clj-time.coerce/to-local-date ?s3) ?s4]] - (d/db conn) - (str "square/settlement/" (:id settlement))) - (sort-by last) - last - first - coerce/to-date-time - atime/as-local-time - coerce/to-date)]] + :in $ ?settlement-id + :where + [?settlement :expected-deposit/external-id ?settlement-id] + [?settlement :expected-deposit/charges ?c] + [?s :sales-order/charges ?c] + [?s :sales-order/date ?sales-date] + [(clj-time.coerce/to-date-time ?sales-date) ?s2] + [(auto-ap.time/localize ?s2) ?s3] + [(clj-time.coerce/to-local-date ?s3) ?s4]] + (d/db conn) + (str "square/settlement/" (:id settlement))) + (sort-by last) + last + first + coerce/to-date-time + atime/as-local-time + coerce/to-date)]] #:expected-deposit {:external-id (str "square/settlement/" (:id settlement)) :vendor :vendor/ccp-square :status :expected-deposit-status/pending @@ -471,18 +473,18 @@ :client (:db/id client) :location (:square-location/client-location location) :fee (- (reduce + 0.0 (map (fn [entry] - (if (= (:type entry) "REFUND") - (- (amount->money (:fee_money entry))) - (amount->money (:fee_money entry)))) - (:entries settlement)))) + (if (= (:type entry) "REFUND") + (- (amount->money (:fee_money entry))) + (amount->money (:fee_money entry)))) + (:entries settlement)))) :date (-> (:initiated_at settlement) - (coerce/to-date)) + (coerce/to-date)) :sales-date (or best-sales-date - (-> (:initiated_at settlement) - (coerce/to-date))) + (-> (:initiated_at settlement) + (coerce/to-date))) :charges (->> (:entries settlement) - (filter :payment_id) - (map (fn [p] {:charge/external-id (str "square/charge/" (:payment_id p))})))}) + (filter :payment_id) + (map (fn [p] {:charge/external-id (str "square/charge/" (:payment_id p))})))}) (filter :expected-deposit/date) (into [])) (catch Exception e