makes expected deposit linking work.
This commit is contained in:
@@ -1,18 +1,22 @@
|
||||
(ns auto-ap.datomic.expected-deposit
|
||||
(:require [auto-ap.datomic :refer [add-sorter-fields apply-pagination apply-sort-3 merge-query conn]]
|
||||
[auto-ap.graphql.utils :refer [limited-clients]]
|
||||
[auto-ap.utils :refer [dollars=]]
|
||||
[clj-time.coerce :as c]
|
||||
[datomic.api :as d]
|
||||
[clojure.tools.logging :as log]))
|
||||
[datomic.api :as d]))
|
||||
|
||||
|
||||
(defn <-datomic [result]
|
||||
(-> result
|
||||
(update :expected-deposit/date c/from-date)))
|
||||
(let [transaction (first (:transaction/_expected-deposit result))
|
||||
transaction (when transaction
|
||||
(update transaction :transaction/date c/from-date))]
|
||||
(cond-> result
|
||||
true (update :expected-deposit/date c/from-date)
|
||||
transaction (assoc :transaction transaction))))
|
||||
|
||||
(def default-read '[*
|
||||
{:expected-deposit/client [:client/name :db/id :client/code]}])
|
||||
{:expected-deposit/client [:client/name :db/id :client/code]
|
||||
:expected-deposit/status [:db/ident]
|
||||
:transaction/_expected-deposit [:transaction/date :db/id]}])
|
||||
|
||||
(defn raw-graphql-ids [db args]
|
||||
(let [query (cond-> {:query {:find []
|
||||
@@ -87,7 +91,7 @@
|
||||
true (apply-sort-3 args)
|
||||
true (apply-pagination args))))
|
||||
|
||||
(defn graphql-results [ids db args]
|
||||
(defn graphql-results [ids db _]
|
||||
(let [results (->> (d/pull-many db default-read ids)
|
||||
(group-by :db/id))
|
||||
payments (->> ids
|
||||
@@ -97,7 +101,6 @@
|
||||
payments))
|
||||
|
||||
(defn get-graphql [args]
|
||||
(log/info "ARGS" args)
|
||||
(let [db (d/db conn)
|
||||
{ids-to-retrieve :ids matching-count :count} (raw-graphql-ids db args)]
|
||||
|
||||
|
||||
@@ -1,6 +1,27 @@
|
||||
(ns auto-ap.datomic.migrate.sales
|
||||
(:require [datomic.api :as d]
|
||||
[auto-ap.datomic :refer [uri]]))
|
||||
(:require [datomic.api :as d]))
|
||||
|
||||
(defn backfill-status [conn]
|
||||
(let [db (d/db conn)
|
||||
pendings (->>
|
||||
(d/q '[:find [?ed ...]
|
||||
:where [?ed :expected-deposit/date]
|
||||
(not [_ :transaction/expected-deposit ?ed])
|
||||
(not [?ed :expected-deposit/status])]
|
||||
db)
|
||||
(map (fn [ed]
|
||||
{:db/id ed
|
||||
:expected-deposit/status :expected-deposit-status/pending})))
|
||||
cleared (->>
|
||||
(d/q '[:find [?ed ...]
|
||||
:where [?ed :expected-deposit/date]
|
||||
[_ :transaction/expected-deposit ?ed]
|
||||
(not [?ed :expected-deposit/status])]
|
||||
db)
|
||||
(map (fn [ed]
|
||||
{:db/id ed
|
||||
:expected-deposit/status :expected-deposit-status/cleared})))]
|
||||
[(into pendings cleared)]))
|
||||
|
||||
(def norms-map {:add-orders {:txes [[{:db/ident :sales-order/external-id
|
||||
:db/doc "The client for the sale"
|
||||
@@ -206,6 +227,7 @@
|
||||
:db/doc "If this transaction is a deposit, the deposit that we anticipated"
|
||||
:db/valueType :db.type/ref
|
||||
:db/cardinality :db.cardinality/one}]]}
|
||||
|
||||
:add-vendor-for-sales-stuff {:txes [[{:db/ident :expected-deposit/vendor
|
||||
:db/doc "Which vendor is this deposit for? CCP Square?"
|
||||
:db/valueType :db.type/ref
|
||||
@@ -218,6 +240,12 @@
|
||||
:db/doc "Which vendor is this refund for? CCP Square?"
|
||||
:db/valueType :db.type/ref
|
||||
:db/cardinality :db.cardinality/one}]]}
|
||||
:backfill-status {:txes-fn `backfill-status
|
||||
:requires [:add-expected-deposit-status
|
||||
:add-expected-deposits
|
||||
:add-sales-date
|
||||
:add-vendor-for-sales-stuff
|
||||
:add-orders]}
|
||||
:add-refund-type {:txes [[{:db/ident :sales-refund/type
|
||||
:db/doc "The type of refund"
|
||||
:db/valueType :db.type/string
|
||||
|
||||
Reference in New Issue
Block a user