reimplemented import
This commit is contained in:
@@ -38,6 +38,9 @@
|
||||
|
||||
(:client-id args) (add-arg '?client-id (:client-id args)
|
||||
'[?e :payment/client ?client-id])
|
||||
(:client-code args) (add-arg '?client-code (:client-code args)
|
||||
'[?e :payment/client ?client-id]
|
||||
'[?client-id :client/code ?client-code] )
|
||||
(:vendor-id args) (add-arg '?vendor-id (:vendor-id args)
|
||||
'[?e :payment/vendor ?vendor-id])
|
||||
(:original-id args) (add-arg '?original-id (cond-> (:original-id args) (string? (:original-id args)) Long/parseLong )
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
{:invoice/vendor [:vendor/name :db/id]}
|
||||
{:invoice/status [:db/ident]}
|
||||
{:invoice-payment/_invoice [* {:invoice-payment/payment [* {:payment/status [*]}
|
||||
{:payment/bank-account [*]}
|
||||
{:transaction/_payment [*]}]}]}]))
|
||||
|
||||
(defn <-datomic [x]
|
||||
@@ -41,6 +42,10 @@
|
||||
(:client-id args) (add-arg '?client-id (:client-id args)
|
||||
'[?e :invoice/client ?client-id])
|
||||
|
||||
(:client-code args) (add-arg '?client-code (:client-code args)
|
||||
'[?e :invoice/client ?client-id]
|
||||
'[?client-id :client/code ?client-code])
|
||||
|
||||
(:original-id args) (add-arg '?original-id (cond-> (:original-id args) (string? (:original-id args)) Long/parseLong )
|
||||
'[?e :invoice/client ?c]
|
||||
'[?c :client/original-id ?original-id])
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
(:require [auto-ap.datomic :refer [uri]]
|
||||
[datomic.api :as d]
|
||||
[auto-ap.datomic.migrate.add-client-codes :refer [add-client-codes]]
|
||||
[auto-ap.datomic.migrate.add-bank-account-codes :refer [add-bank-account-codes]]
|
||||
[clojure.java.io :as io]
|
||||
[io.rkn.conformity :as c])
|
||||
(:import [datomic Util])
|
||||
@@ -50,6 +51,8 @@
|
||||
:auto-ap/migrate-invoices-expense-accounts {:txes-fn 'auto-ap.datomic/migrate-invoices-expense-accounts :requires [:auto-ap/migrate-invoices-payments]}
|
||||
:auto-ap/migrate-transactions {:txes-fn 'auto-ap.datomic/migrate-transactions :requires [:auto-ap/migrate-invoices-expense-accounts]}
|
||||
:auto-ap/add-client-codes {:txes-fn 'auto-ap.datomic.migrate.add-client-codes/add-client-codes :requires [:auto-ap/migrate-transactions]}
|
||||
:auto-ap/add-bank-account-codes-schema {:txes-fn 'auto-ap.datomic.migrate.add-bank-account-codes/add-bank-account-codes-schema :requires [:auto-ap/add-client-codes]}
|
||||
:auto-ap/add-bank-account-codes {:txes-fn 'auto-ap.datomic.migrate.add-bank-account-codes/add-bank-account-codes :requires [:auto-ap/add-bank-account-codes-schema]}
|
||||
}]
|
||||
(println "Conforming database...")
|
||||
(println (c/ensure-conforms conn norms-map))
|
||||
|
||||
28
src/clj/auto_ap/datomic/migrate/add_bank_account_codes.clj
Normal file
28
src/clj/auto_ap/datomic/migrate/add_bank_account_codes.clj
Normal file
@@ -0,0 +1,28 @@
|
||||
(ns auto-ap.datomic.migrate.add-bank-account-codes
|
||||
(:require [datomic.api :as d]
|
||||
[auto-ap.datomic :refer [uri]]
|
||||
[clojure.string :as str]))
|
||||
|
||||
(defn add-bank-account-codes-schema [conn]
|
||||
[[{:db/ident :bank-account/code
|
||||
:db/valueType :db.type/string
|
||||
:db/unique :db.unique/identity
|
||||
:db/cardinality :db.cardinality/one
|
||||
:db/doc "A bank account's computer-friendly name"}]])
|
||||
|
||||
|
||||
(defn add-bank-account-codes [conn]
|
||||
(let [db (d/db conn)
|
||||
all-bank-accounts (d/query {:query {:find ['?b '?original-id '?client-code]
|
||||
:in ['$]
|
||||
:where ['[?c :client/code ?client-code]
|
||||
'[?c :client/bank-accounts ?b]
|
||||
'[?b :bank-account/original-id ?original-id]]}
|
||||
:args [db]})]
|
||||
[(mapv (fn [[bank-account-id bank-account-code client-code ]]
|
||||
(let [[_ bank-account-code] (str/split bank-account-code #"-" )]
|
||||
{:db/id bank-account-id
|
||||
:bank-account/code (str client-code "-" bank-account-code)}))
|
||||
all-bank-accounts)]))
|
||||
|
||||
#_(add-bank-account-codes (d/connect uri))
|
||||
@@ -84,6 +84,11 @@
|
||||
:where ['[?e :transaction/client ?client-id]]}
|
||||
:args [(:client-id args)]})
|
||||
|
||||
(:client-code args)
|
||||
(merge-query {:query {:in ['?client-code]
|
||||
:where ['[?e :transaction/client ?client-id]
|
||||
'[?client-id :client/code ?client-code]]}
|
||||
:args [(:client-code args)]})
|
||||
|
||||
(:original-id args)
|
||||
(merge-query {:query {:in ['?original-id]
|
||||
|
||||
Reference in New Issue
Block a user