tons of small fixes.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
[auto-ap.datomic.migrate.add-bank-account-codes :refer [add-bank-account-codes]]
|
||||
[auto-ap.datomic.migrate.invoice-converter :refer [add-import-status-existing-invoices]]
|
||||
[auto-ap.datomic.migrate.add-general-ledger :as add-general-ledger]
|
||||
[auto-ap.datomic.migrate.ledger :as ledger]
|
||||
[auto-ap.datomic.migrate.sales :as sales]
|
||||
[auto-ap.datomic.migrate.clients :as clients]
|
||||
[auto-ap.datomic.migrate.audit :as audit]
|
||||
@@ -316,11 +317,12 @@
|
||||
:auto-ap/fix-reset-rels {:txes-fn `reset-function}}
|
||||
sales/norms-map
|
||||
clients/norms-map
|
||||
ledger/norms-map
|
||||
audit/norms-map)
|
||||
]
|
||||
(println "Conforming database...")
|
||||
(c/ensure-conforms conn norms-map)
|
||||
(when (not (seq args))
|
||||
#_(when (not (seq args))
|
||||
(d/release conn))
|
||||
(println "Done")))
|
||||
#_(-main false)
|
||||
|
||||
6
src/clj/auto_ap/datomic/migrate/ledger.clj
Normal file
6
src/clj/auto_ap/datomic/migrate/ledger.clj
Normal file
@@ -0,0 +1,6 @@
|
||||
(ns auto-ap.datomic.migrate.ledger)
|
||||
|
||||
(def norms-map {::add-alternat-description {:txes [[{:db/ident :journal-entry/alternate-description
|
||||
:db/doc "The description if there is no vendor"
|
||||
:db/valueType :db.type/string
|
||||
:db/cardinality :db.cardinality/one}]]}})
|
||||
@@ -116,7 +116,6 @@
|
||||
args)
|
||||
true
|
||||
(merge-query {:query {:find ['?e] :where ['[?e :transaction/id]]}}))]
|
||||
(println query)
|
||||
(cond->> query
|
||||
true (d/query)
|
||||
true (apply-sort-3 args)
|
||||
@@ -179,18 +178,3 @@
|
||||
(update :transaction/post-date c/from-date)
|
||||
(dissoc :transaction/id)))
|
||||
|
||||
(defn unapprove [ids]
|
||||
(doseq [x (partition-all 100 ids)]
|
||||
@(d/transact (d/connect uri)
|
||||
(mapv (fn [i]
|
||||
{:db/id i
|
||||
:transaction/approval-status :transaction-approval-status/unapproved})
|
||||
x))))
|
||||
|
||||
(defn delete [ids]
|
||||
(doseq [x (partition-all 100 ids)]
|
||||
@(d/transact (d/connect uri)
|
||||
(mapcat (fn [i]
|
||||
[[:db/retractEntity i]
|
||||
[:db/retractEntity [:journal-entry/original-entity i]]])
|
||||
x))))
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
(ns auto-ap.datomic.vendors
|
||||
(:require [datomic.api :as d]
|
||||
[auto-ap.graphql.utils :refer [limited-clients]]
|
||||
[auto-ap.datomic :refer [uri]]))
|
||||
[auto-ap.graphql.utils :refer [limited-clients ]]
|
||||
|
||||
[auto-ap.datomic :refer [uri conn merge-query]]))
|
||||
(defn cleanse [id vendor]
|
||||
(let [clients (if-let [clients (limited-clients id)]
|
||||
(set (map :db/id clients))
|
||||
@@ -18,14 +19,42 @@
|
||||
:vendor/terms-overrides [* {:vendor-terms-override/client [:client/name :client/code :db/id]}]
|
||||
:vendor/automatically-paid-when-due [:db/id :client/name]}])
|
||||
|
||||
(defn get-graphql [args]
|
||||
(->> (cond-> {:query {:find [(list 'pull '?e default-read)]
|
||||
(defn get-usages [args]
|
||||
(->> (cond-> {:query {:find ['?v '?c '(count ?e)]
|
||||
:in ['$]
|
||||
:where ['[?e :vendor/name]]}
|
||||
:args [(d/db (d/connect uri))]})
|
||||
:where ['[?v :vendor/name]
|
||||
'(or-join [?v ?c ?e]
|
||||
(and
|
||||
[?e :invoice/vendor ?v]
|
||||
[?e :invoice/client ?c])
|
||||
(and
|
||||
[?e :transaction/vendor ?v]
|
||||
[?e :transaction/client ?c])
|
||||
(and
|
||||
[?e :journal-entry/vendor ?v]
|
||||
[?e :journal-entry/client ?c]))]}
|
||||
:args [(d/db conn)]}
|
||||
|
||||
(limited-clients (:id args))
|
||||
(merge-query {:query {:in ['?xx]
|
||||
:where [['(get ?xx ?c)]]}
|
||||
:args [(set (map :db/id (limited-clients (:id args))))]}))
|
||||
(d/query)
|
||||
(map first)
|
||||
(map #(cleanse (:id args) %))))
|
||||
(reduce
|
||||
(fn [usages [v c cnt]]
|
||||
(update usages v (fnil conj []) {:client-id c :count cnt}))
|
||||
{})))
|
||||
|
||||
(defn get-graphql [args]
|
||||
(let [usages (time (get-usages args))]
|
||||
(->> (cond-> {:query {:find [(list 'pull '?e default-read)]
|
||||
:in ['$]
|
||||
:where ['[?e :vendor/name]]}
|
||||
:args [(d/db (d/connect uri))]})
|
||||
(d/query)
|
||||
(map first)
|
||||
(map #(cleanse (:id args) %))
|
||||
(map #(assoc % :usage (get usages (:db/id %)))))))
|
||||
|
||||
(defn get-by-id [id]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user