prepares for fixing square issue
This commit is contained in:
@@ -17,7 +17,8 @@
|
|||||||
[manifold.deferred :as de]
|
[manifold.deferred :as de]
|
||||||
[manifold.executor :as ex]
|
[manifold.executor :as ex]
|
||||||
[manifold.stream :as s]
|
[manifold.stream :as s]
|
||||||
[manifold.time :as mt]))
|
[manifold.time :as mt]
|
||||||
|
[clojure.data.csv :as csv]))
|
||||||
|
|
||||||
(defn client-base-headers
|
(defn client-base-headers
|
||||||
([client] (client-base-headers client "2021-08-18"))
|
([client] (client-base-headers client "2021-08-18"))
|
||||||
@@ -370,6 +371,16 @@
|
|||||||
(fn [e]
|
(fn [e]
|
||||||
(log/error ::failed-to-transform-order
|
(log/error ::failed-to-transform-order
|
||||||
:exception e)))))))
|
:exception e)))))))
|
||||||
|
(defn should-import-order? [order]
|
||||||
|
;; sometimes orders stay open in square. At least one payment
|
||||||
|
;; is needed to import, in order to avoid importing orders in-progress.
|
||||||
|
(and
|
||||||
|
(or (> (count (:tenders order)) 0)
|
||||||
|
(seq (:returns order)))
|
||||||
|
(or (= #{} (set (map #(:status (:card_details %)) (:tenders order))))
|
||||||
|
(not= #{} (set/difference
|
||||||
|
(set (map #(:status (:card_details %)) (:tenders order)))
|
||||||
|
#{"FAILED" "VOIDED"})))))
|
||||||
|
|
||||||
(defn daily-results
|
(defn daily-results
|
||||||
([client location]
|
([client location]
|
||||||
@@ -381,16 +392,7 @@
|
|||||||
(fn [search-results]
|
(fn [search-results]
|
||||||
(->> (or search-results [])
|
(->> (or search-results [])
|
||||||
(s/->source)
|
(s/->source)
|
||||||
(s/filter (fn [order]
|
(s/filter should-import-order?)
|
||||||
;; sometimes orders stay open in square. At least one payment
|
|
||||||
;; is needed to import, in order to avoid importing orders in-progress.
|
|
||||||
(and
|
|
||||||
(or (> (count (:tenders order)) 0)
|
|
||||||
(seq (:returns order)))
|
|
||||||
(or (= #{} (set (map #(:status (:card_details %)) (:tenders order))))
|
|
||||||
(not= #{} (set/difference
|
|
||||||
(set (map #(:status (:card_details %)) (:tenders order)))
|
|
||||||
#{"FAILED" "VOIDED"}))))))
|
|
||||||
(s/map #(mu/with-context lc (order->sales-order client location %)))
|
(s/map #(mu/with-context lc (order->sales-order client location %)))
|
||||||
(s/buffer 10)
|
(s/buffer 10)
|
||||||
(s/realize-each)
|
(s/realize-each)
|
||||||
@@ -890,7 +892,7 @@
|
|||||||
:headers (client-base-headers client)
|
:headers (client-base-headers client)
|
||||||
:as :json})
|
:as :json})
|
||||||
:body)))
|
:body)))
|
||||||
(def refs
|
(def refs
|
||||||
(->>
|
(->>
|
||||||
@(let [[c [l]] (get-square-client-and-location "NGCL")]
|
@(let [[c [l]] (get-square-client-and-location "NGCL")]
|
||||||
|
|
||||||
@@ -901,9 +903,39 @@
|
|||||||
|
|
||||||
(let [[c [l]] (get-square-client-and-location "NGCL")]
|
(let [[c [l]] (get-square-client-and-location "NGCL")]
|
||||||
|
|
||||||
#_(get-payment c l )
|
#_(get-payment c l)
|
||||||
|
|
||||||
(map (fn [r] @(get-payment c (:payment_id r))) refs))
|
(map (fn [r] @(get-payment c (:payment_id r))) refs))
|
||||||
|
|
||||||
|
|
||||||
|
(def my-results
|
||||||
|
(let [[c [l]] (get-square-client-and-location "NGFA")]))
|
||||||
|
|
||||||
|
(clojure.data.csv/write-csv *out*
|
||||||
|
(for [c (get-square-clients)
|
||||||
|
l (:client/square-locations c)
|
||||||
|
:when (:square-location/client-location l)
|
||||||
|
bad-row (try (->> @(search c l (coerce/to-date-time #inst "2024-04-01T00:00:00-07:00") (coerce/to-date-time #inst "2024-04-15T23:59:00-07:00"))
|
||||||
|
(filter #(not (should-import-order? %)))
|
||||||
|
(map #(first (deref (order->sales-order c l %))))
|
||||||
|
(filter (fn already-exists [o]
|
||||||
|
(when (:sales-order/external-id o)
|
||||||
|
(seq (dc/q '[:find ?i
|
||||||
|
:in $ ?ei
|
||||||
|
:where [?i :sales-order/external-id ?ei]]
|
||||||
|
(dc/db conn)
|
||||||
|
(:sales-order/external-id o)))))))
|
||||||
|
(catch Exception e
|
||||||
|
[]))]
|
||||||
|
[(:client/code c) (atime/unparse-local (clj-time.coerce/to-date-time (:sales-order/date bad-row)) atime/normal-date) (:sales-order/total bad-row) (:sales-order/tax bad-row) (:sales-order/tip bad-row) (:db/id bad-row)])
|
||||||
|
:separator \tab)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; =>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(clojure.pprint/pprint (let [[c [l]] (get-square-client-and-location "NGWC")]
|
||||||
|
|
||||||
|
(get-order c l "yzmLBYVGhKXUPwGXm482GJb2VX9YY")))
|
||||||
)
|
)
|
||||||
0
src/clj/auto_ap/ssr/admin/clients.fiddle
Normal file
0
src/clj/auto_ap/ssr/admin/clients.fiddle
Normal file
Reference in New Issue
Block a user