This commit is contained in:
Bryce
2024-09-23 09:50:31 -07:00
parent babb0302d2
commit 4fdc2e2558

View File

@@ -1,9 +1,10 @@
(ns auto-ap.graphql.clients (ns auto-ap.graphql.clients
(:require [auto-ap.datomic :refer [conn]] (:require [auto-ap.datomic :refer [conn]]
[auto-ap.logging :as alog]
[auto-ap.datomic.clients :as d-clients] [auto-ap.datomic.clients :as d-clients]
[auto-ap.graphql.utils [auto-ap.graphql.utils
:refer [->graphql <-graphql assert-admin attach-tracing-resolvers :refer [->graphql <-graphql assert-admin attach-tracing-resolvers
can-see-client? is-admin? result->page]] can-see-client? is-admin? result->page]]
[clj-time.coerce :as c] [clj-time.coerce :as c]
[clj-time.core :as time] [clj-time.core :as time]
[clojure.set :as set] [clojure.set :as set]
@@ -18,24 +19,27 @@
db)] db)]
(doseq [[{client :db/id code :client/code bank-accounts :client/bank-accounts}] clients (doseq [[{client :db/id code :client/code bank-accounts :client/bank-accounts}] clients
{bank-account :db/id bac :bank-account/code} bank-accounts] {bank-account :db/id bac :bank-account/code} bank-accounts]
@(dc/transact conn [{:db/id bank-account (let [balance (or
:bank-account/current-balance-synced (c/to-date (time/now)) (->> (dc/index-pull db
:bank-account/current-balance {:index :avet
(or :selector [:db/id :journal-entry-line/location :journal-entry-line/account :journal-entry-line/running-balance :journal-entry-line/client+account+location+date {:journal-entry/_line-items [:journal-entry/date :journal-entry/client]}]
(->> (dc/index-pull db :start [:journal-entry-line/client+account+location+date [client bank-account "A" #inst "2030-01-01"]]
{:index :avet :reverse true})
:selector [:db/id :journal-entry-line/location :journal-entry-line/account :journal-entry-line/running-balance :journal-entry-line/client+account+location+date {:journal-entry/_line-items [:journal-entry/date :journal-entry/client]}] (take 3)
:start [:journal-entry-line/client+account+location+date [client bank-account "A" #inst "2030-01-01"]]
:reverse true})
(take 3)
(filter (fn [{[c b] :journal-entry-line/client+account+location+date}] (filter (fn [{[c b] :journal-entry-line/client+account+location+date}]
(and (= c client) (and (= c client)
(= b bank-account)))) (= b bank-account))))
(map :journal-entry-line/running-balance) (map :journal-entry-line/running-balance)
(first)) (first))
0.0)}]))))) 0.0)]
(alog/info ::updating
:bank-account bac
:balance balance)
@(dc/transact conn [{:db/id bank-account
:bank-account/current-balance-synced (c/to-date (time/now))
:bank-account/current-balance balance}]))))))
(defn get-client [context _ _] (defn get-client [context _ _]
(->graphql (->graphql