From ec4e6624b533ba7beb9f5298308b73954dd3623c Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Tue, 10 Jan 2023 09:41:42 -0800 Subject: [PATCH] fixed loading issue --- src/clj/auto_ap/square/core2.clj | 2 + src/clj/auto_ap/square/core3.clj | 85 ++++++++++++++++++-------------- src/clj/auto_ap/time.clj | 3 ++ 3 files changed, 53 insertions(+), 37 deletions(-) diff --git a/src/clj/auto_ap/square/core2.clj b/src/clj/auto_ap/square/core2.clj index 80b50e67..9eae401e 100644 --- a/src/clj/auto_ap/square/core2.clj +++ b/src/clj/auto_ap/square/core2.clj @@ -341,6 +341,8 @@ (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 diff --git a/src/clj/auto_ap/square/core3.clj b/src/clj/auto_ap/square/core3.clj index 4e14d6d3..fefcf21c 100644 --- a/src/clj/auto_ap/square/core3.clj +++ b/src/clj/auto_ap/square/core3.clj @@ -48,6 +48,8 @@ :source "Square 3" :background-job "Square 3") (client/request (assoc request + :socket-timeout 10000 + :connection-timeout 10000 :as :json :retry-handler retry-4)))) (de/catch @@ -441,43 +443,51 @@ ([client location] (de/chain (settlements client location) (fn [settlements] - (->> (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)]] - #:expected-deposit {:external-id (str "square/settlement/" (:id settlement)) - :vendor :vendor/ccp-square - :status :expected-deposit-status/pending - :total (amount->money (:total_money settlement)) - :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)))) - :date (-> (:initiated_at settlement) - (coerce/to-date)) - :sales-date (or best-sales-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 :expected-deposit/date)))))) + (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)]] + #:expected-deposit {:external-id (str "square/settlement/" (:id settlement)) + :vendor :vendor/ccp-square + :status :expected-deposit-status/pending + :total (amount->money (:total_money settlement)) + :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)))) + :date (-> (:initiated_at settlement) + (coerce/to-date)) + :sales-date (or best-sales-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 :expected-deposit/date) + (into [])) + (catch Exception e + (log/error ::transform-settlement-failed + :exception e))))))) (defn refunds ([client l] @@ -544,6 +554,7 @@ (de/chain (daily-settlements client location) (fn [settlements] (mu/with-context lc + (log/info ::started-loading-deposits :settlement-count (count settlements)) (doseq [x (partition-all 20 settlements)] (log/info ::loading-deposits :count (count x)) diff --git a/src/clj/auto_ap/time.clj b/src/clj/auto_ap/time.clj index e544f1d0..d2922fb2 100644 --- a/src/clj/auto_ap/time.clj +++ b/src/clj/auto_ap/time.clj @@ -6,6 +6,9 @@ (defn localize [d] (time/to-time-zone d (time/time-zone-for-id "America/Los_Angeles"))) +(defn as-local-time [d] + (time/from-time-zone d (time/time-zone-for-id "America/Los_Angeles"))) + (defn local-now [] (time/to-time-zone (time/now) (time/time-zone-for-id "America/Los_Angeles")))