adding invoices works correctly again.
This commit is contained in:
@@ -11,18 +11,26 @@
|
||||
(update-in [:query :where] conj where))]
|
||||
(reduce #(update-in %1 [:query :where] conj %2) query rest)))
|
||||
|
||||
(def default-read '(pull ?e [*
|
||||
{:invoice/client [:client/name :db/id]}
|
||||
{:invoice/vendor [:vendor/name :db/id]}
|
||||
{:invoice/status [:db/ident]}
|
||||
{:invoice-payment/_invoice [* {:invoice-payment/payment [*]}]}]))
|
||||
|
||||
(defn <-datomic [x]
|
||||
(->> x
|
||||
(map first)
|
||||
|
||||
(map #(update % :invoice/date c/from-date))
|
||||
(map #(update % :invoice/status :db/ident))
|
||||
(map #(rename-keys % {:invoice-payment/_invoice :invoice/payments}))))
|
||||
|
||||
(defn raw-graphql [args]
|
||||
(->> (d/query
|
||||
(cond-> (doto {:query {:find ['(pull ?e [*
|
||||
{:invoice/client [:client/name :db/id]}
|
||||
{:invoice/vendor [:vendor/name :db/id]}
|
||||
{:invoice/status [:db/ident]}
|
||||
{:invoice-payment/_invoice [* {:invoice-payment/payment [*]}]}])]
|
||||
:in ['$]
|
||||
:where ['[?e :invoice/original-id]
|
||||
]}
|
||||
:args [(d/db (d/connect uri))]}
|
||||
println)
|
||||
(cond-> {:query {:find [default-read]
|
||||
:in ['$]
|
||||
:where ['[?e :invoice/invoice-number]]}
|
||||
:args [(d/db (d/connect uri))]}
|
||||
|
||||
(:client-id args) (add-arg '?client-id (cond-> (:client-id args)
|
||||
(string? (:client-id args))
|
||||
@@ -34,13 +42,7 @@
|
||||
'[?c :client/original-id ?original-id])
|
||||
(:status args) (add-arg '?status (keyword "invoice-status" (:status args))
|
||||
'[?e :invoice/status ?status])))
|
||||
(map first)
|
||||
|
||||
(map #(update % :invoice/date c/from-date))
|
||||
(map #(update % :invoice/status :db/ident))
|
||||
(map #(rename-keys % {:invoice-payment/_invoice :invoice/payments}))
|
||||
|
||||
#_(map #(update % :transaction/post-date c/from-date))))
|
||||
(<-datomic)))
|
||||
|
||||
(defn sort-fn [args]
|
||||
(cond
|
||||
@@ -65,3 +67,23 @@
|
||||
|
||||
(->> (raw-graphql args)
|
||||
(count)))
|
||||
|
||||
(defn get-by-id [id]
|
||||
(->>
|
||||
(d/query (-> {:query {:find [default-read]
|
||||
:in ['$]
|
||||
:where []}
|
||||
:args [(d/db (d/connect uri))]}
|
||||
(add-arg '?e (cond-> id (string? id) Long/parseLong) ['?e])))
|
||||
(<-datomic)
|
||||
(first)))
|
||||
|
||||
(defn find-conflicting [{:keys [:invoice/invoice-number :invoice/vendor :invoice/client]}]
|
||||
(->> (d/query
|
||||
(cond-> {:query {:find [default-read]
|
||||
:in ['$ '?invoice-number '?vendor '?client]
|
||||
:where ['[?e :invoice/invoice-number ?invoice-number]
|
||||
'[?e :invoice/vendor ?vendor]
|
||||
'[?e :invoice/client ?client]]}
|
||||
:args [(d/db (d/connect uri)) invoice-number (Long/parseLong vendor) (Long/parseLong client)]}))
|
||||
(<-datomic)))
|
||||
|
||||
Reference in New Issue
Block a user