Files
integreat/scratch-sessions/update_ezcater_orders.clj
2022-12-03 21:32:31 -08:00

257 lines
11 KiB
Clojure

(println "hi")
(d/pull (d/db conn) '[*] 17592279036264)
{:sales-order/client #:db{:id 17592244691542},
:sales-order/location "CD",
:sales-order/external-id
"ezcater/order/NGCD-CD-98690c6c-ca84-49f7-b1d3-96b3fcf68b24",
:sales-order/discount -52.37,
:sales-order/vendor #:db{:id 17592273052793},
:sales-order/returns 0.0,
:sales-order/date #inst "2022-11-21T19:30:00.000-00:00",
:sales-order/service-charge 46.83,
:db/id 17592279036264,
:sales-order/charges
[{:charge/total 274.88,
:charge/processor #:db{:id 17592274224064},
:charge/type-name "CARD",
:charge/external-id
"ezcater/charge/98690c6c-ca84-49f7-b1d3-96b3fcf68b24",
:charge/location "CD",
:charge/date #inst "2022-11-21T19:30:00.000-00:00",
:db/id 17592279036265,
:charge/client #:db{:id 17592244691542},
:charge/tip 23.05}],
:sales-order/reference-link
"https://ezmanage.ezcater.com/orders/98690c6c-ca84-49f7-b1d3-96b3fcf68b24",
:sales-order/line-items
[{:db/id 17592279036266,
:order-line-item/item-name "EZCater Catering",
:order-line-item/total 274.88,
:order-line-item/tax 21.330000000000002,
:order-line-item/category "EZCater Catering",
:order-line-item/discount -52.37,
:order-line-item/external-id
"ezcater/order/NGCD-CD-98690c6c-ca84-49f7-b1d3-96b3fcf68b24-0"}],
:sales-order/tip 23.05,
:sales-order/tax 21.330000000000002,
:sales-order/total 274.88}
(def target-order (lookup-order {"id" "bf3dcf5c-a68f-42d9-9084-049133e03d3d", "parent_type" "Caterer", "parent_id" "91541331-d7ae-4634-9e8b-ccbbcfb2ce70", "entity_type" "Order", "entity_id" "98690c6c-ca84-49f7-b1d3-96b3fcf68b24", "key" "accepted", "occurred_at" "2022-07-21T19:21:07.549Z"}))
(def ezcater-orders )
ezcater-orders
(first ezcater-orders)
(d/pull (d/db conn) '[{:client/ezcater-locations [* {:ezcater-location/caterer [*]}]}] [:client/code "NGCD"])
#:client{:ezcater-locations
[{:db/id 17592275985819,
:ezcater-location/location "CD",
:ezcater-location/caterer
{:db/id 17592267152223,
:ezcater-caterer/uuid
"eca924c1-1008-4e9c-9e74-8f344d079e7a",
:ezcater-caterer/name "Nick The Greek (2075 Diamond Blvd)",
:ezcater-caterer/search-terms
"Nick The Greek 2075 Diamond Blvd"}}]}
#:client{:ezcater-locations
[{:db/id 17592275985819,
:ezcater-location/location "CD",
:ezcater-location/caterer #:db{:id 17592267152223}}]}
(def all-ezcater-orders
(doall (for [[order uuid] (d/q '[:find ?eid ?uuid
:in $
:where [?e :sales-order/vendor :vendor/ccp-ezcater]
[?e :sales-order/date ?d]
[(ground (clj-time.coerce/to-date #inst "2022-11-28T00:00:00-08:00")) ?d2]
[(>= ?d ?d2)]
[?e :sales-order/external-id ?eid]
[?e :sales-order/client ?c]
[?c :client/ezcater-locations ?l]
[?l :ezcater-location/caterer ?c2]
[?c2 :ezcater-caterer/uuid ?uuid]]
(d/db conn))
:let [id (last (clojure.string/split order #"/"))
id (clojure.string/join "-" (drop 2 (clojure.string/split order #"-")))
lookup-map {"id" "bf3dcf5c-a68f-42d9-9084-049133e03d3d", "parent_type" "Caterer", "parent_id" uuid, "entity_type" "Order", "entity_id" id, "key" "accepted", "occurred_at" "2022-07-21T19:21:07.549Z"}
ezcater-order (lookup-order lookup-map)
extant-order (d/pull (d/db conn) '[:sales-order/total
:sales-order/tax
:sales-order/tip
:sales-order/discount
:sales-order/external-id
{:sales-order/charges [:charge/tax
:charge/tip
:charge/total
:charge/external-id]}]
[:sales-order/external-id order])
updated-order (-> (order->sales-order ezcater-order)
(select-keys
#{:sales-order/total
:sales-order/tax
:sales-order/tip
:sales-order/discount
:sales-order/charges
:sales-order/external-id})
(update :sales-order/charges (fn [c]
(map #(select-keys % #{:charge/tax :charge/tip :charge/total
:charge/external-id}) c))))]
:when (not= updated-order extant-order)
]
updated-order
)))
#'auto-ap.ezcater.core/all-ezcater-orders
#'auto-ap.ezcater.core/target-order
(order->sales-order (first all-ezcater-orders))
#:sales-order{:vendor :vendor/ccp-ezcater,
:service-charge 46.83,
:date #clj-time/date-time "2022-11-21T19:30:00.000Z",
:reference-link
"https://ezmanage.ezcater.com/orders/98690c6c-ca84-49f7-b1d3-96b3fcf68b24",
:charges
[#:charge{:type-name "CARD",
:date
#clj-time/date-time "2022-11-21T19:30:00.000Z",
:client [:client/code nil],
:location nil,
:external-id
"ezcater/charge/98690c6c-ca84-49f7-b1d3-96b3fcf68b24",
:processor :ccp-processor/ezcater,
:total 251.83,
:tip 0.0}],
:client [:client/code nil],
:tip 0.0,
:tax 21.330000000000002,
:external-id
"ezcater/order/--98690c6c-ca84-49f7-b1d3-96b3fcf68b24",
:total 251.83,
:line-items
[#:order-line-item{:external-id
"ezcater/order/--98690c6c-ca84-49f7-b1d3-96b3fcf68b24-0",
:item-name "EZCater Catering",
:category "EZCater Catering",
:discount 0.68,
:tax 21.330000000000002,
:total 251.83}],
:discount 0.68,
:location nil,
:returns 0.0}
(ccp-fee target-order)
9.81
(as-> a
[a (order->sales-order a)])
[{:uuid "8f7b7aa6-c48d-44f9-9be6-037cf68b65e9",
:orderSourceType "MARKETPLACE",
:caterer
{:name "Nick The Greek",
:uuid "eca924c1-1008-4e9c-9e74-8f344d079e7a",
:address {:street "2075 Diamond Blvd"}},
:event
{:timestamp "2022-11-10T19:30:00Z",
:catererHandoffFoodTime "2022-11-10T19:00:00Z",
:orderType "THIRD_PARTY_DELIVERY"},
:catererCart
{:orderItems
[{:name "Olympus Package",
:quantity 13,
:posItemId nil,
:totalInSubunits {:currency "USD", :subunits 29835}}],
:totals {:catererTotalDue 266.77},
:feesAndDiscounts [{:cost {:currency "USD", :subunits 3000}}]},
:totals
{:customerTotalDue {:currency "USD", :subunits 39669},
:pointOfSaleIntegrationFee {:currency "USD", :subunits 0},
:tip {:currency "USD", :subunits 0},
:salesTax {:currency "USD", :subunits 2834},
:salesTaxRemittance {:currency "USD", :subunits 0},
:subTotal {:currency "USD", :subunits 29835}},
:client-code nil,
:client-location nil}
#:sales-order{:vendor :vendor/ccp-ezcater,
:service-charge 59.06,
:date #clj-time/date-time "2022-11-10T19:30:00.000Z",
:reference-link
"https://ezmanage.ezcater.com/orders/8f7b7aa6-c48d-44f9-9be6-037cf68b65e9",
:charges
[#:charge{:type-name "CARD",
:date
#clj-time/date-time "2022-11-10T19:30:00.000Z",
:client [:client/code nil],
:location nil,
:external-id
"ezcater/charge/8f7b7aa6-c48d-44f9-9be6-037cf68b65e9",
:processor :ccp-processor/ezcater,
:total 326.69,
:tip 0.0}],
:client [:client/code nil],
:tip 0.0,
:tax 28.34,
:external-id
"ezcater/order/--8f7b7aa6-c48d-44f9-9be6-037cf68b65e9",
:total 326.69,
:line-items
[#:order-line-item{:external-id
"ezcater/order/--8f7b7aa6-c48d-44f9-9be6-037cf68b65e9-0",
:item-name "EZCater Catering",
:category "EZCater Catering",
:discount 0.86,
:tax 28.34,
:total 326.69}],
:discount 0.86,
:location nil,
:returns 0.0}]
{:uuid "8f7b7aa6-c48d-44f9-9be6-037cf68b65e9",
:orderSourceType "MARKETPLACE",
:caterer
{:name "Nick The Greek",
:uuid "eca924c1-1008-4e9c-9e74-8f344d079e7a",
:address {:street "2075 Diamond Blvd"}},
:event
{:timestamp "2022-11-10T19:30:00Z",
:catererHandoffFoodTime "2022-11-10T19:00:00Z",
:orderType "THIRD_PARTY_DELIVERY"},
:catererCart
{:orderItems
[{:name "Olympus Package",
:quantity 13,
:posItemId nil,
:totalInSubunits {:currency "USD", :subunits 29835}}],
:totals {:catererTotalDue 266.77},
:feesAndDiscounts [{:cost {:currency "USD", :subunits 3000}}]},
:totals
{:customerTotalDue {:currency "USD", :subunits 39669},
:pointOfSaleIntegrationFee {:currency "USD", :subunits 0},
:tip {:currency "USD", :subunits 0},
:salesTax {:currency "USD", :subunits 2834},
:salesTaxRemittance {:currency "USD", :subunits 0},
:subTotal {:currency "USD", :subunits 29835}},
:client-code nil,
:client-location nil}