Files
integreat/scratch-sessions/working-on-ezcater-square-v2.clj
Bryce Covert bd0f8da16b working on ezcater
ezcater other.

dajusments.

migration for square2
2022-09-26 16:12:39 -07:00

236 lines
11 KiB
Clojure

;; This buffer is for Clojure experiments and evaluation.
;; Press C-j to evaluate the last expression.
;; You can also press C-u C-j to evaluate the expression and pretty-print its result.
(ns working-on-ezcater-square-v2
(:require [auto-ap.square.core :as sc]
[clj-time.core :as time]
[auto-ap.ezcater.core :as ez])
)
(auto-ap.routes.queries/put-query
"ec3bae96-95cd-40aa-b0b1-342ab58efed2"
" [:find ?d4 ?type ?p2 (sum ?total) (sum ?tip)
:with ?charge
:in $
:where
[?charge :charge/date ?date]
[(ground (clj-time.coerce/to-date (clj-time.core/minus (auto-ap.time/local-now) (clj-time.core/days 50)))) ?min-d]
[(>= ?date ?min-d)]
[?charge :charge/client ?c]
[?c :client/code \"NGOP2\"]
[?charge :charge/type-name ?type]
[?charge :charge/total ?total]
[?charge :charge/tip ?tip]
(or
(and [_ :expected-deposit/charges ?charge ]
[(ground :settlement) ?ccp]
[(ground :settlement) ?p])
(and
(not [_ :expected-deposit/charges ?charge])
[(get-else $ ?charge :charge/processor :na) ?ccp]
[(get-else $ ?ccp :db/ident :na) ?p]
))
[(name ?p) ?p2]
[(clj-time.coerce/to-date-time ?date) ?d2]
[(auto-ap.time/localize ?d2) ?d3]
[(auto-ap.time/unparse-local ?d3 auto-ap.time/normal-date) ?d4]]
", "")
(user/init-repl)
(in-ns 'auto-ap.square.core)
(require '[auto-ap.square.core :as sc])
(require '[auto-ap.ezcater.core :as ez])
(def square-client (first (sc/get-square-clients "NGOP2")))
(def square-location (first (for [client (sc/get-square-clients "NGOP2")
square-location (:client/square-locations client)
:when (:square-location/client-location square-location)]
square-location)))
(sc/upsert square-client square-location (time/plus (time/now) (time/days -45)) (time/now))
(sc/upsert-settlements square-client square-location)
(sc/get-order square-client square-location "EYIVOtQj8FgdpgNlpUQP9S51uNbZY" )
(sc/get-payment square-client "vhnZ67vi7BIO6mZ6R609Vsih7nDZY")
k
(sc/get-order square-client square-location "ggjaHEikb81AKjrJC7H4RRqjDXZZY")
(sc/get-payment square-client "zhEgwmQL4cI0P00NGBAzqX5gnX6YY")
(sc/get-order square-client square-location "CdzNsHRryhGNQ9fh4tdYcEBwA4PZY")
(sc/get-order square-client square-location "hipr01buRJcFg2NFeFTjuJ4eV")
(user/start-db)
(def my-search (doall (search (first (get-square-clients "NGOP2"))
{:db/id 17592186106155,
:square-location/name "Oyster Point",
:square-location/square-id "L3GMNBFARX9GG",
:square-location/client-location "OP"}
#clj-time/date-time "2022-06-30T00:00:00-08:00"
#clj-time/date-time "2022-07-01T00:00:00-08:00"
)))
(def my-search (doall (search (first (get-square-clients "NGOP2"))
{:db/id 17592186106155,
:square-location/name "Oyster Point",
:square-location/square-id "L3GMNBFARX9GG",
:square-location/client-location "OP"}
#clj-time/date-time "2022-07-13T00:00:00-08:00"
#clj-time/date-time "2022-07-14T00:00:00-08:00"
)))
(set/difference
(filter
(comp (set/difference
(set (map :id
(let [search-results my-search
koala-production-ids (->> search-results
(filter #(= "koala-production" (:name (:source %))))
(map :id)
(into #{}))]
(let [search-results my-search]
(->> search-results
(filter (fn [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"}))))))
(filter (fn [order]
(not= "Koala" (:name (:source order)))))
(filter (fn has-linked-koala-production? [order]
;; if a POS order is linked (via note) to a koala-production order, we want
;; to keep the koala-production order, because it has taxes correct
(not (and (:line_items order) ;; returns do not have line items, so they should be allowed
(->> (:line_items order)
(map :note)
(every? koala-production-ids))))))))))
)
(set (map :id (->> my-search
(filter (fn [order]
(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"})))
(not= ["CUSTOM_AMOUNT"]
(mapv :item_type (:line_items order )))
))))
)))
:id
)
my-search))
(doseq [p (->>
(d/query {:query {:find ['?e]
:in ['$]
:where ['(or [?e :sales-order/client [:client/code "NGOP2"]]
[?e :sales-refund/client [:client/code "NGOP2"]]
[?e :expected-deposit/client [:client/code "NGOP2"]])]}
:args [(d/db conn)]})
(map first)
(map (fn [x] [:db/retractEntity x]))
(partition-all 100))]
@(d/transact conn p))
(def weird-order
{:total_service_charge_money {:amount 0, :currency "USD"},
:closed_at "2022-07-14T02:50:43Z",
:total_discount_money {:amount 0, :currency "USD"},
:total_money {:amount 120533, :currency "USD"},
:total_tip_money {:amount 0, :currency "USD"},
:taxes
[{:uid "64a788f3-13c6-45a8-9333-c7e4ed4b45f2",
:catalog_object_id "4XTWECYYOZWTGRJ475C3QOQL",
:catalog_version 1655153159309,
:name "9.875%",
:percentage "9.875",
:type "ADDITIVE",
:applied_money {:amount 10833, :currency "USD"},
:scope "LINE_ITEM"}],
:net_amounts
{:total_money {:amount 120533, :currency "USD"},
:tax_money {:amount 10833, :currency "USD"},
:discount_money {:amount 0, :currency "USD"},
:tip_money {:amount 0, :currency "USD"},
:service_charge_money {:amount 0, :currency "USD"}},
:total_tax_money {:amount 10833, :currency "USD"},
:location_id "L3GMNBFARX9GG",
:tenders
[{:id "pQgHRVNc3WzBDZVGpORONh5YvaB",
:location_id "L3GMNBFARX9GG",
:transaction_id "XBo0x9zb7rkpWLAJ79cgihweV",
:created_at "2022-07-14T02:50:42Z",
:note "ezcater 7\\13",
:amount_money {:amount 120533, :currency "USD"},
:processing_fee_money {:amount 0, :currency "USD"},
:type "OTHER"}],
:state "COMPLETED",
:ticket_name "Ezcater 7-13",
:updated_at "2022-07-14T02:50:43Z",
:net_amount_due_money {:amount 0, :currency "USD"},
:return_amounts
{:total_money {:amount 0, :currency "USD"},
:tax_money {:amount 0, :currency "USD"},
:discount_money {:amount 0, :currency "USD"},
:tip_money {:amount 0, :currency "USD"},
:service_charge_money {:amount 0, :currency "USD"}},
:line_items
[{:total_discount_money {:amount 0, :currency "USD"},
:total_money {:amount 120533, :currency "USD"},
:total_tax_money {:amount 10833, :currency "USD"},
:uid "6a293751-027e-45a0-9f5d-e9f4e7cb62fd",
:variation_total_price_money {:amount 109700, :currency "USD"},
:item_type "CUSTOM_AMOUNT",
:gross_sales_money {:amount 109700, :currency "USD"},
:applied_taxes
[{:uid "64a788f3-13c6-45a8-9333-c7e4ed4b45f2",
:tax_uid "64a788f3-13c6-45a8-9333-c7e4ed4b45f2",
:applied_money {:amount 10833, :currency "USD"}}],
:base_price_money {:amount 109700, :currency "USD"},
:quantity "1"}],
:id "XBo0x9zb7rkpWLAJ79cgihweV",
:created_at "2022-07-14T02:50:43Z"})
(order->sales-order "a" "b" weird-order)
(doseq [n ["185431988" "186982950" "186344682" "185281242" "184313395" "185477889" "185043055" "184552573" "185042091" "182674641" "184083782" "184200746" "181197904"]]
(clojure.pprint/pprint
@(d/transact auto-ap.datomic/conn [(-> {"id" "bf3dcf5c-a68f-42d9-9084-049133e03d3d", "parent_type" "Caterer", "parent_id" "ef505599-947f-42da-a36c-4b569e33a747", "entity_type" "Order", "entity_id" "178289110", "key" "accepted", "occurred_at" "2022-07-21T19:21:07.549Z"}
(assoc "entity_id" n)
(ez/lookup-order)
(ez/order->sales-order)
(update :sales-order/date coerce/to-date)
(update-in [:sales-order/charges 0 :charge/date] coerce/to-date))])))
;;
(clojure.pprint/pprint [(-> {"id" "bf3dcf5c-a68f-42d9-9084-049133e03d3d", "parent_type" "Caterer", "parent_id" "91541331-d7ae-4634-9e8b-ccbbcfb2ce70", "entity_type" "Order", "entity_id" "178289110", "key" "accepted", "occurred_at" "2022-07-21T19:21:07.549Z"}
(lookup-order)
#_(order->sales-order)
#_(update :sales-order/date coerce/to-date)
#_(update-in [:sales-order/charges 0 :charge/date] coerce/to-date))])