setup for clients moving much faster

This commit is contained in:
2023-04-05 14:42:25 -07:00
parent d59059fee2
commit 406cddf6e6
3 changed files with 53 additions and 32 deletions

View File

@@ -1,5 +1,7 @@
(ns iol-ion.query
(:require [clj-time.core :as time]))
(:require [clj-time.core :as time]
[clj-time.coerce :as coerce]
[clj-time.format :as f]))
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
(defn dollars-0? [amt]
@@ -9,5 +11,19 @@
(defn dollars= [amt1 amt2]
(dollars-0? (- amt1 amt2) ))
(defn localize [d]
(time/to-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")))
(localize (time/now)))
(defn recent-date []
(coerce/to-date (time/minus (local-now) (time/days 90))))
(def excel-formatter (f/with-zone (f/formatter "MM/dd/yyyy") (time/time-zone-for-id "America/Los_Angeles")))
(defn excel-date [d]
(->> d
(coerce/to-date-time)
localize
(f/unparse excel-formatter )))

View File

@@ -225,8 +225,8 @@
:with ?s
:in $
:where
[(ground (iol-ion.query/recent-date)) ?min-d]
[?s :sales-order/client [:client/code \"%s\"]]
[(ground (clj-time.coerce/to-date (clj-time.core/minus (auto-ap.time/local-now) (clj-time.core/days 90)))) ?min-d]
[?s :sales-order/date ?d]
[(>= ?d ?min-d)]
[?s :sales-order/total ?total]
@@ -235,9 +235,7 @@
[?s :sales-order/service-charge ?service-charge]
[?s :sales-order/returns ?returns]
[?s :sales-order/discount ?discount]
[(clj-time.coerce/to-date-time ?d) ?d2]
[(auto-ap.time/localize ?d2) ?d3]
[(auto-ap.time/unparse-local ?d3 auto-ap.time/normal-date) ?d4]
[(iol-ion.query/excel-date ?d) ?d4]
]")
(def sales-category-query
@@ -245,8 +243,8 @@
:with ?s ?li
:in $
:where
[(ground (iol-ion.query/recent-date)) ?min-d]
[?s :sales-order/client [:client/code \"%s\"]]
[(ground (clj-time.coerce/to-date (clj-time.core/minus (auto-ap.time/local-now) (clj-time.core/days 90)))) ?min-d]
[?s :sales-order/date ?d]
[(>= ?d ?min-d)]
[?s :sales-order/line-items ?li]
@@ -255,23 +253,22 @@
[?li :order-line-item/total ?total]
[?li :order-line-item/tax ?tax]
[?li :order-line-item/discount ?discount]
[(clj-time.coerce/to-date-time ?d) ?d2]
[(auto-ap.time/localize ?d2) ?d3]
[(auto-ap.time/unparse-local ?d3 auto-ap.time/normal-date) ?d4]
[(iol-ion.query/excel-date ?d) ?d4]
]")
(def expected-deposits-query
"[:find ?d4 ?t ?f
:in $
:where
[(ground (iol-ion.query/recent-date)) ?min-d]
[?c :client/code \"%s\"]
[?s :expected-deposit/client ?c]
[?s :expected-deposit/sales-date ?date]
[(>= ?date ?min-d)]
[?s :expected-deposit/total ?t]
[?s :expected-deposit/fee ?f]
[?s :expected-deposit/sales-date ?date]
[(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]
[(iol-ion.query/excel-date ?date) ?d4]
]")
(def tenders-query
@@ -279,9 +276,9 @@
:with ?charge
:in $
:where
[?c :client/code \"%s\"]
[(ground (iol-ion.query/recent-date)) ?min-d]
[?c :client/code \"%s\"]
[?s :sales-order/client ?c]
[(ground (clj-time.coerce/to-date (clj-time.core/minus (auto-ap.time/local-now) (clj-time.core/days 90)))) ?min-d]
[?s :sales-order/date ?date]
[(>= ?date ?min-d)]
[?s :sales-order/charges ?charge]
@@ -291,9 +288,7 @@
[(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]
[(iol-ion.query/excel-date ?date) ?d4]
]")
(def tenders2-query
@@ -301,8 +296,8 @@
:with ?charge
:in $
:where
[(ground (iol-ion.query/recent-date)) ?min-d]
[?charge :charge/date ?date]
[(ground (clj-time.coerce/to-date (clj-time.core/minus (auto-ap.time/local-now) (clj-time.core/days 90)))) ?min-d]
[(>= ?date ?min-d)]
[?charge :charge/client ?c]
[?c :client/code \"%s\"]
@@ -320,30 +315,28 @@
[(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]]" )
[(iol-ion.query/excel-date ?date) ?d4]
" )
(def refunds-query
"[:find ?d4 ?t (sum ?total) (sum ?fee)
:with ?r
:in $
:where
[(ground (iol-ion.query/recent-date)) ?min-d]
[?r :sales-refund/client [:client/code \"%s\"]]
[?r :sales-refund/date ?date]
[(>= ?date ?min-d)]
[?r :sales-refund/total ?total]
[?r :sales-refund/fee ?fee]
[?r :sales-refund/date ?date]
[?r :sales-refund/type ?t]
[(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]]")
[(iol-ion.query/excel-date ?date) ?d4]
]")
(defn setup-sales-queries [context args _]
(assert-admin (:id context))
(let [{client-code :client/code feature-flags :client/feature-flags} (dc/pull (dc/db conn) '[:client/code :client/feature-flags] (:client_id args))
is-new-square? ((set feature-flags) "new-square")]
(defn setup-sales-queries-impl [client-id]
(let [{client-code :client/code feature-flags :client/feature-flags} (dc/pull (dc/db conn) '[:client/code :client/feature-flags] client-id)
is-new-square? ((set feature-flags) "new-square")]
(q/put-query (str (UUID/randomUUID))
(format sales-summary-query client-code)
(str "sales query for " client-code)
@@ -389,6 +382,16 @@
(str "Refund: " "https://app.integreatconsult.com/api/queries/" refund-id "/results/json")])})))
(defn setup-sales-queries [context args _]
(assert-admin (:id context))
(setup-sales-queries-impl (:client_id args)))
(defn reset-all-queries []
(doseq [[c] (dc/q '[:find ?c :where [?c :client/code]] (dc/db conn))]
(setup-sales-queries-impl c)))
(def objects
{:location_match
{:fields {:location {:type 'String}

View File

@@ -35,6 +35,7 @@ Release steps:
Set prod web workers to 0
Make database snapshot (run export-job)
run link_sales_queries again to make sure sales queries are linked
(ecs/run-task (cond-> {:capacity-provider-strategy [{:base 1 :weight 1 :capacity-provider "FARGATE_SPOT"}]
:count 1
:cluster "default"
@@ -67,6 +68,7 @@ Merge branch into master
Rename prod-cloud to prod everywhere
Release again
git push deploy master
regenerate all sales queries