Add vendor pre-population for bulk code and individual edit forms
- Add vendor-changed HTMX handlers for both bulk code and individual edit - Pre-populate default account at 100% when vendor is selected and no accounts exist - Fix render-accounts-section to render from step-params correctly - Change bulk code vendor-changed from hx-get to hx-post to include form data - Add routes for vendor-changed endpoints - Update e2e tests to cover vendor pre-population - Run lein cljfmt fix across codebase
This commit is contained in:
@@ -1,32 +1,32 @@
|
||||
(ns user
|
||||
(:require [amazonica.aws.s3 :as s3]
|
||||
[auto-ap.server]
|
||||
[auto-ap.datomic :refer [conn pull-attr random-tempid]]
|
||||
[auto-ap.solr :as solr]
|
||||
[auto-ap.time :as atime]
|
||||
[auto-ap.utils :refer [by]]
|
||||
[clj-time.coerce :as c]
|
||||
[clj-time.core :as t]
|
||||
[clojure.core.async :as async]
|
||||
[auto-ap.handler :refer [app]]
|
||||
[ring.adapter.jetty :refer [run-jetty]]
|
||||
[clojure.data.csv :as csv]
|
||||
[clojure.java.io :as io]
|
||||
[clojure.pprint]
|
||||
[clojure.string :as str]
|
||||
[clojure.tools.namespace.repl :refer [refresh set-refresh-dirs]]
|
||||
[com.brunobonacci.mulog :as mu]
|
||||
[com.brunobonacci.mulog.buffer :as rb]
|
||||
[config.core :refer [env]]
|
||||
[datomic.api :as dc]
|
||||
[puget.printer :as puget]
|
||||
[datomic.api :as d]
|
||||
#_[figwheel.main.api]
|
||||
[hawk.core]
|
||||
[mount.core :as mount]
|
||||
[nrepl.middleware.print])
|
||||
(:import (org.apache.commons.io.input BOMInputStream)
|
||||
[org.eclipse.jetty.server.handler.gzip GzipHandler]))
|
||||
(:require [amazonica.aws.s3 :as s3]
|
||||
[auto-ap.server]
|
||||
[auto-ap.datomic :refer [conn pull-attr random-tempid]]
|
||||
[auto-ap.solr :as solr]
|
||||
[auto-ap.time :as atime]
|
||||
[auto-ap.utils :refer [by]]
|
||||
[clj-time.coerce :as c]
|
||||
[clj-time.core :as t]
|
||||
[clojure.core.async :as async]
|
||||
[auto-ap.handler :refer [app]]
|
||||
[ring.adapter.jetty :refer [run-jetty]]
|
||||
[clojure.data.csv :as csv]
|
||||
[clojure.java.io :as io]
|
||||
[clojure.pprint]
|
||||
[clojure.string :as str]
|
||||
[clojure.tools.namespace.repl :refer [refresh set-refresh-dirs]]
|
||||
[com.brunobonacci.mulog :as mu]
|
||||
[com.brunobonacci.mulog.buffer :as rb]
|
||||
[config.core :refer [env]]
|
||||
[datomic.api :as dc]
|
||||
[puget.printer :as puget]
|
||||
[datomic.api :as d]
|
||||
#_[figwheel.main.api]
|
||||
[hawk.core]
|
||||
[mount.core :as mount]
|
||||
[nrepl.middleware.print])
|
||||
(:import (org.apache.commons.io.input BOMInputStream)
|
||||
[org.eclipse.jetty.server.handler.gzip GzipHandler]))
|
||||
|
||||
(defn println-event [item]
|
||||
#_(printf "%s: %s - %s:%s by %s\n"
|
||||
@@ -44,8 +44,7 @@
|
||||
item
|
||||
:user)))
|
||||
(when (= :auto-ap.logging/peek (:mulog/event-name item))
|
||||
(println "\u001B[31mTEST")
|
||||
)
|
||||
(println "\u001B[31mTEST"))
|
||||
(when (:error item)
|
||||
(println (:error item)))
|
||||
(puget/cprint (reduce
|
||||
@@ -58,18 +57,15 @@
|
||||
{:seq-limit 10})
|
||||
(println))
|
||||
|
||||
|
||||
(deftype DevPublisher [config buffer transform]
|
||||
|
||||
com.brunobonacci.mulog.publisher.PPublisher
|
||||
(agent-buffer [_]
|
||||
buffer)
|
||||
|
||||
|
||||
(publish-delay [_]
|
||||
200)
|
||||
|
||||
|
||||
(publish [_ buffer]
|
||||
;; items are pairs [offset <item>]
|
||||
(doseq [item (transform (map second (rb/items buffer)))]
|
||||
@@ -77,8 +73,6 @@
|
||||
(flush)
|
||||
(rb/clear buffer)))
|
||||
|
||||
|
||||
|
||||
(defn dev-publisher
|
||||
[{:keys [transform pretty?] :as config}]
|
||||
(DevPublisher. config (rb/agent-buffer 10000) (or transform identity)))
|
||||
@@ -87,8 +81,6 @@
|
||||
[config]
|
||||
(dev-publisher config))
|
||||
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn load-accounts [conn]
|
||||
(let [[header & rows] (-> "master-account-list.csv" (io/resource) io/input-stream (BOMInputStream.) (io/reader) csv/read-csv)
|
||||
@@ -161,7 +153,6 @@
|
||||
(also-merge-txes also-merge old-account-id))
|
||||
tx)))))
|
||||
|
||||
|
||||
conj
|
||||
[]
|
||||
rows)]
|
||||
@@ -192,7 +183,6 @@
|
||||
'[(<= ?z 9999)]]}
|
||||
(dc/db conn)))))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn find-conflicting-accounts []
|
||||
(filter
|
||||
@@ -226,8 +216,6 @@
|
||||
:where [['?e :account-client-override/client '?client-id]]}
|
||||
(dc/db conn) client-id)
|
||||
|
||||
|
||||
|
||||
_ (when-let [bad-rows (seq (->> rows
|
||||
(group-by (fn [[_ account]]
|
||||
account))
|
||||
@@ -285,7 +273,6 @@
|
||||
txes
|
||||
#_@(d/transact conn txes)))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn fix-transactions-without-locations [client-code location]
|
||||
(->>
|
||||
@@ -307,7 +294,6 @@
|
||||
accounts)))
|
||||
vec))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn entity-history [i]
|
||||
(vec (sort-by first (dc/q
|
||||
@@ -342,17 +328,15 @@
|
||||
{:start (- i 100)
|
||||
:end (+ i 100)}))))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn start-db []
|
||||
(mu/start-publisher! {:type :dev})
|
||||
(mount.core/start (mount.core/only #{#'auto-ap.datomic/conn})))
|
||||
|
||||
|
||||
(defn- auto-reset-handler [ctx event]
|
||||
#_(require 'figwheel.main.api)
|
||||
(binding [*ns* *ns*]
|
||||
(clojure.tools.namespace.repl/refresh)
|
||||
(clojure.tools.namespace.repl/refresh)
|
||||
ctx))
|
||||
|
||||
(defn auto-reset
|
||||
@@ -363,11 +347,9 @@
|
||||
(hawk.core/watch! [{:paths ["src/" "test/"]
|
||||
:handler auto-reset-handler}]))
|
||||
|
||||
|
||||
(defn start-http []
|
||||
(mount.core/start (mount.core/only #{#'auto-ap.server/port #'auto-ap.server/jetty})))
|
||||
|
||||
|
||||
(defn start-dev []
|
||||
(set-refresh-dirs "src")
|
||||
#_(clojure.tools.namespace.repl/disable-reload! (find-ns 'auto-ap.server))
|
||||
@@ -392,7 +374,6 @@
|
||||
(for [r data]
|
||||
((apply juxt columns) r)))))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn find-queries [words]
|
||||
(let [obj (s3/list-objects-v2 :bucket-name (:data-bucket env)
|
||||
@@ -418,7 +399,6 @@
|
||||
(println "failed " e)))
|
||||
(async/<!! (async/into [] output-chan))))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn upsert-invoice-amounts [tsv]
|
||||
(let [data (with-open [reader (io/reader (char-array tsv))]
|
||||
@@ -460,15 +440,12 @@
|
||||
target-date (clj-time.coerce/to-date (atime/parse target-date atime/normal-date))
|
||||
current-date (:invoice/date invoice)
|
||||
|
||||
|
||||
current-expense-account-amount (:invoice-expense-account/amount invoice-expense-account 0.0)
|
||||
target-expense-account-amount (- (Double/parseDouble amount))
|
||||
|
||||
|
||||
current-expense-account-location (:invoice-expense-account/location invoice-expense-account)
|
||||
target-expense-account-location location
|
||||
|
||||
|
||||
[[_ _ invoice-payment]] (vec (dc/q
|
||||
'[:find ?p ?a ?ip
|
||||
:in $ ?i
|
||||
@@ -512,7 +489,6 @@
|
||||
(filter identity)
|
||||
vec)))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn get-schema [prefix]
|
||||
(->> (dc/q '[:find ?i
|
||||
@@ -537,7 +513,6 @@
|
||||
(defn init-repl []
|
||||
(set! nrepl.middleware.print/*print-fn* clojure.pprint/pprint))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn sample-ledger-import
|
||||
([client-code]
|
||||
@@ -564,7 +539,6 @@
|
||||
a)
|
||||
:separator \tab))))
|
||||
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn sample-manual-yodlee
|
||||
([client-code]
|
||||
@@ -582,8 +556,6 @@
|
||||
["posted" d (str "Random Description - " id) "Travel" nil nil (- amount) nil nil nil nil nil (rand-nth bank-accounts) client-code])
|
||||
:separator \tab))))
|
||||
|
||||
|
||||
|
||||
(defn index-solr
|
||||
[]
|
||||
(println "invoice")
|
||||
|
||||
Reference in New Issue
Block a user