Files
integreat/src/clj/auto_ap/datomic/migrate/rename_codes.clj
2022-07-26 07:01:18 -07:00

43 lines
1.6 KiB
Clojure

(ns auto-ap.datomic.migrate.rename-codes
(:require [datomic.api :as d]
[auto-ap.datomic :refer [uri]]
[clojure.string :as str]))
(defn rename [old-code new-code conn ]
(let [results (->> (d/query {:query {:find ['?e '?b '?bc]
:in ['$ '?old-code]
:where ['[?e :client/code ?old-code]
'[?e :client/bank-accounts ?b]
'[?b :bank-account/code ?bc]]}
:args [(d/db conn) old-code]})
(group-by first))
#_#_[[id]] results]
(for [[id change] results
[_ ba-id ba-code] change]
[{:db/id id
:client/code new-code}
{:db/id ba-id
:bank-account/code (str/replace ba-code #"^.*-" (str new-code "-"))}])
#_[{:db/id id
:client/code new-code
#_#_:client/bank-accounts (map)}]
)
)
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
(defn rename-codes-1 [_]
(let [result (apply concat [(rename "WE" "WME" (d/connect uri))
(rename "HM" "HIM" (d/connect uri))
(rename "BES" "SBE" (d/connect uri))
(rename "BES" "SBE" (d/connect uri))
(rename "ORA" "OMG" (d/connect uri))
(rename "INT" "IGC" (d/connect uri))
(rename "MV" "MVSC" (d/connect uri))])]
(if (seq (seq result))
result
[[]]))
)